Coup de Grace

爪哇虎书读后 有关nashorn

这本书过于基础,不适合购买

近些日子的工作恰巧有些crack的部分,涉及到java程序中调用一些js进行操作.

jdk8中更新了新一代的js引擎: Nashorn. 提供了些许语法糖与REPL和较大的性能提升,支持以类node的形式编写应用并运行在jvm上.

我们用实例来示范一下简单的java内js函数调用,来实现一次字符串的加密.

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
//ScriptEngine engine = manager.getEngineByName("Nashorn");
try { 
    engine.eval(Files.newBufferedReader(Paths.get("/path/to/encrypt.js"), StandardCharsets.UTF_8));
    Invocable inv = (Invocable) engine;
    Object obj = inv.invokeFunction("encrypt", "str_u_want_encrypt");
    System.out.println(object);
} catch (ScriptException | IOException | NoSuchMethodException e) {
    e.printStackTrace();
}

加密module各显神通~

后续会继续更新一些新特性与小tips.

总感觉这篇偷工减料太多了…最近微博上有人说akka+nashorn做爬虫的事儿,稍微关注下,有时间拿来读一下~