对于getEngineByName(“JavaScript”),ScriptEngine是否为空?

时间:2012-10-05 19:53:59

标签: java javascript rhino

ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");

引擎为空???此外,我尝试迭代scriptEnginefactories它是零...

我的类路径上有js-1.7R1.jar ...任何人都可以告诉我我需要做什么来注册javascript引擎(我发现Rhino是js-1.7r.jar)

感谢。

3 个答案:

答案 0 :(得分:1)

" Eclipse使用自己的编译器,但使用系统的JRE ... " - 巴特基尔斯

确保JRE为1.6或更高。根据评论,Jeryl Cook将日食设定为JRE 1.5。他从日食中删除了这个,并添加了JRE 1.6,它解决了他的问题。

答案 1 :(得分:0)

我在使用JDK 11时遇到了同样的问题。使用JDK 8解决了它。

答案 2 :(得分:-1)

确保你有

  

sun.org.mozilla.javascript.internal,com.sun.script.javascript;

在您的类路径中打包。
您尝试运行的是Java SE(Java Scripting Api)中的Rhino的fork版本。看起来你的Java没有它(检查上面的包)。 我相信js-1.7R1.jar是来自mozilla的原始Rhino实现 - 您可以尝试直接运行它link,而不是通过Java Scripting API。