首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Nashorn切换到Rhino (Gradle)

从Nashorn切换到Rhino (Gradle)
EN

Stack Overflow用户
提问于 2016-09-19 08:05:18
回答 3查看 898关注 0票数 0

我正在使用Java8和Kotlin,但我的项目中的一个库(http://michel-kraemer.github.io/citeproc-java/)拒绝在与Java8捆绑在一起的Nashorn JavaScript解释器上运行,解决方案是使用Rhino JavaScript解释器。

我正在使用Gradle来构建我的项目。我已经将Rhino添加到我的依赖项中,但是库仍然坚持使用Nashorn。

代码语言:javascript
复制
compile 'org.mozilla:rhino:1.7.7.1' 

此外,下面的代码会生成一个NullPointerException:

代码语言:javascript
复制
val m = ScriptEngineManager()
// specifically look for "rhino" engine
val engine = m.getEngineByName("rhino")

所以看起来Rhino并不在任何类路径上。如何确保Rhino可用于我的应用程序?

EN

回答 3

Stack Overflow用户

发布于 2016-09-19 20:48:22

基于Rhino的jsr223引擎不再随jdk8+一起提供。但是,您可以按照这里介绍的步骤在jdk8+ -> https://wiki.openjdk.java.net/display/Nashorn/Using+Rhino+JSR-223+engine+with+JDK8上获取Rhino引擎

也就是说,我们想知道为什么nashorn不能使用!请提交错误或将问题报告发送到nashorn-dev openjdk别名。

票数 2
EN

Stack Overflow用户

发布于 2016-10-07 18:26:01

除了Rhino引擎,您还需要JSR-233桥(因为它已经不在JDK中了)。您可以使用以下maven依赖项:

代码语言:javascript
复制
    <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>

然后,您只需调用正确的脚本引擎:

代码语言:javascript
复制
new ScriptEngineManager().getEngineByName("rhino");
票数 2
EN

Stack Overflow用户

发布于 2021-08-26 04:46:30

你会发现这很有帮助。

https://github.com/mozilla/rhino/releases/tag/Rhino1_7_13_Release

现在您可以添加额外的'org.mozilla:rhino-engine:1.7.13',以使引擎可用,前提是它在您的类路径中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39563758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档