【问题标题】:ScriptEngine is Null for getEngineByName("JavaScript")?getEngineByName("JavaScript") 的 ScriptEngine 为 Null?
【发布时间】:2012-10-05 19:53:59
【问题描述】:
ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");

引擎为空???我也尝试遍历 scriptEnginefactories 它为零...

我的类路径中有 js-1.7R1.jar...谁能告诉我我还需要做什么来注册 javascript 引擎(我发现 Rhino 是 js-1.7r.jar)

谢谢。

【问题讨论】:

  • 你的课程怎么样?通过IDE?如果是,它的编译器级别是否设置为 Java 1.6 或更高版本?
  • Eclipse 使用自己的编译器,但使用系统的 JRE:您确定您的 JRE 是 1.6+?其他 1.6 功能是否有效? (注释)
  • @BartKiers 谢谢!您的 cmets 帮助我指出正确的方向..在我的 IDE 中,我必须删除我的 JRE(它是 1.5)并将其添加回 1.6....我最近更改为 1.6,但没有解决这个问题......谢谢,我被困了好一阵子:/
  • @Jeryl Cook 您能否将该解决方案设为官方并回答您自己的问题,以便您的问题可以帮助其他人。

标签: java javascript rhino


【解决方案1】:

"Eclipse 使用自己的编译器,但使用系统的 JRE..." - Bart Kiers

确保 JRE 为 1.6 或更高版本。根据 cmets,Jeryl Cook 将 eclipse 设置为 JRE 1.5。他从 eclipse 中删除了这个并添加了 JRE 1.6,它可以工作并解决他的问题。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      确保你有

      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。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-12
        • 1970-01-01
        • 2012-04-20
        • 2012-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多