2014-09-30 72 views
1

一个问题给专家: 最新的Java 8提供了JavaScript引擎Nashorn。它以invokedynamic的魔力知道,JavaScript被编译为JVM字节码,而不像Mozilla Rhino,它只是解释它。Java 8 Nashorn JJS - javascript控制台

但是怎么样JJS(javascript控制台)。飞行中是否有汇编?或者只是解释?

谢谢!

回答

1

jjs只是一个命令行工具的名称,它随JDK一起发布,调用Nashorn。

有关详细信息,请参阅the Java Platform Tools Reference

+0

所以我正确地告诉我:我运行jjs,jjs本身以某种方式启动nashorn,并获得控制台;我输入了一些内容,例如“new Date()”,然后按回车; (?)中发生了什么? - nashorn生成“new Date()”构造的字节码,将其推送通过JVM,然后停止jvm以用于下一个用户输入?是吗? – 2014-10-05 11:29:12

+1

说Nashorn“生成字节码”是过于简单化了。在您指定的情况下,Nashorn会评估您的代码,并因此创建一个新的JavaScript Date对象(由Nashorn Java类实现)。 Nashorn的“字节码”部分大体上是JVM现在包含允许方法动态附加到Java对象的指令,这些对象支持JavaScript等语言的动态输入。 Nashorn使用这些指令而不是在Java之上合成一个完整的方法调用层,这是'invokedynamic'(新的JVM指令)之前所需要的。 – 2014-10-05 11:42:54

+0

谢谢,我现在有一个更好的理解! – 2014-10-05 11:49:33