当我在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
知道什么是错的吗?
答案 0 :(得分:9)
// 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
也会导致问题消失。