ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");
引擎为空???我也尝试遍历 scriptEnginefactories 它为零...
我的类路径上有 js-1.7R1.jar ......谁能告诉我我还需要做什么来注册 javascript 引擎(我发现 Rhino 是 js-1.7r.jar)
谢谢。
ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");
引擎为空???我也尝试遍历 scriptEnginefactories 它为零...
我的类路径上有 js-1.7R1.jar ......谁能告诉我我还需要做什么来注册 javascript 引擎(我发现 Rhino 是 js-1.7r.jar)
谢谢。
“ Eclipse 使用自己的编译器,但使用系统的 JRE…… ” - Bart Kiers
确保 JRE 为 1.6 或更高版本。根据评论,Jeryl Cook 将 eclipse 设置为 JRE 1.5。他从 Eclipse 中删除了这个并添加了 JRE 1.6,它可以工作并解决他的问题。
我在 JDK 11 上遇到了同样的问题。使用 JDK 8 解决了这个问题。
确保你有
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。