简介
With Java 8, Nashorn, a much improved javascript engine is introduced, to replace the existing Rhino. Nashorn provides 2 to 10 times better performance, as it directly compiles the code in memory and passes the bytecode to JVM. Nashorn uses invoke dynamics feature, introduced in Java 7 to improve performance.
(译文)Java8中引入了一个改进的javascript引擎,Nashorn,它替换掉了之前的Rhino引擎。因为Nashorn引擎直接在内存中编译代码并将字节码传递给JVM,所以其性能比之前的提高了2~10倍。Nashorn使用Java7中引入的动态调用特性来提高性能。
说明
- Rihino和Nashorn都是在JVM上基于JavaScript语言实现的。
- Nashron引擎既可以用在Java代码中,也可以借助位于
$JAVA_HOME/bin下的jjs工具在命令行中使用。
jjs
- jjs简介:基于Nashorn引擎的命令行工具。它接受一些JavaScript源代码为参数,并且执行这些源代码。
- 使用方法
- jjs demo.js(得保证demo.js里由对象的javascript代码)
- 交互式编程,直接输入
jjs命令即可进入,举例如下1
2
3jjs
print('Hello jjs!');
Hello jjs!
传递参数
代码示例
1 | jjs -- a b c |
Java中调用JavaScript
代码示例
1 | import javax.script.ScriptEngine; |
输出:
1 | Runoob |
JavaScript中调用Java
代码示例
1 | // 利用Java类型定义大数类型小数 |
输出
1 | 78952000000000002017.94 |
更多详细内容参见官方文档