2016-09-19 86 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");