2016-09-19 76 views
0

我在Kotlin上使用Java 8,我項目中的一個庫(http://michel-kraemer.github.io/citeproc-java/)拒絕在Java 8捆綁的Nashorn JavaScript解釋器上運行。解決方案是使用Rhino JavaScript解釋器。從Nashorn切換到Rhino(Gradle)

我正在使用Gradle構建我的項目。我已經將Rhino添加到了我的依賴中,但圖書館仍然堅持使用Nashorn。

compile 'org.mozilla:rhino:1.7.7.1' 

此外,下面的代碼會產生一個NullPointerException:

val m = ScriptEngineManager() 
// specifically look for "rhino" engine 
val engine = m.getEngineByName("rhino") 

如此看來,犀牛不是在類路徑中的任何地方。我如何確保Rhino可用於我的應用程序?

回答

0

與Rhino引擎一起,您將需要JSR-233橋接器(因爲它不再位於JDK中)。您可以使用以下Maven的依賴關係:

<dependency> 
     <groupId>org.mozilla</groupId> 
     <artifactId>rhino</artifactId> 
     <version>1.7.7.1</version> 
    </dependency> 
    <dependency> 
     <groupId>cat.inspiracio</groupId> 
     <artifactId>rhino-js-engine</artifactId> 
     <version>1.7.7.1</version> 
    </dependency> 

然後你只需要調用合適的腳本引擎:

new ScriptEngineManager().getEngineByName("rhino");