【问题标题】:Sbt 0.13 ScriptEngine is Null for getEngineByName(“JavaScript”)Sbt 0.13 ScriptEngine 对于 getEngineByName(“JavaScript”) 为 Null
【发布时间】:2013-11-23 21:39:23
【问题描述】:

当我在 sbt 0.13 中运行使用 getEngineByName("JavaScript") 的测试时,该方法返回 null。 安全代码适用于 sbt 0.12.x。

在不同的环境中尝试过:Windows 7 和 Mac - 同样的问题。

我尝试在 sbt 中手动设置 javaHome

test:dependencyClasspath 包含.ivy2/cache/rhino/js/jars/js-1.6R7.jar

知道有什么问题吗?

【问题讨论】:

    标签: javascript scala sbt


    【解决方案1】:

    哈哈原来几个月前我自己也遇到过这个问题,然后全忘了!但后来我在自己的源代码中发现了这个:

    // the (null) became necessary when we upgraded to sbt 0.13. I don't understand why.
    // classloaders, go figure! - ST 8/26/13
    val engine =
      (new javax.script.ScriptEngineManager(null))
        .getEngineByName("rhino")
        .ensuring(_ != null, "JavaScript engine unavailable")
    

    因此将 null 传递给 ScriptEngineManager 构造函数是解决方法...

    ...但我无法阐明根本原因,除非我敢打赌这是一个类加载器的事情。请注意,fork in run := true 也会使问题消失。

    【讨论】:

    • 难以置信!我突然开始在 Domino 中得到空值而没有进行任何更改。将 null 传递给 ScriptEngineManager 解决了问题!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 2012-04-20
    • 2014-06-04
    相关资源
    最近更新 更多