2013-11-23 31 views
3

當我運行在sbt 0.13中使用getEngineByName("JavaScript")的測試時,該方法返回null。 安全代碼在sbt 0.12.x下正常工作。Sbt 0.13 ScriptEngine爲getEngineByName(「JavaScript」)爲空

嘗試在不同的環境:Windows 7和Mac - 同樣的問題。

我試圖在sbt中手動設置javaHome

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

任何想法有什麼不對?

回答

8

哈哈事實證明,我幾個月前自己有這個問題,並忘記了一切!但後來我在我自己的源代碼剛纔發現這一點:

// 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") 

所以通過零到對於ScriptEngineManager構造是修復...

...但我不能在任何光線揭示根本的原因,除了我敢打賭這是一個類加載器的東西。請注意,fork in run := true也會使問題消失。

+0

令人難以置信!我突然開始在Domino中變得沒有任何改變。將null傳遞給'ScriptEngineManager'解決了這個問題!謝謝。 –

相關問題