我希望允许我的项目支持定制脚本代码,包括Javascript和Python。为了方便地支持多种语言,我想使用ScriptEngine接口(由JSR-223规范定义)。这导致了问题: Java 6和7使用Mozilla Rhino javascript引擎,Java 8使用新的Nashorn javascript引擎。不幸的是,犀牛和纳什霍恩之间有几个不相容之处。
该项目必须同时运行在Java 7和8上。因为我希望脚本的行为与使用哪个JVM相同,所以我认为最好将Mozilla与我的应用程序捆绑在一起,但是我无法为它找到一个JSR-223 (ScriptEngine)包装器。
有这样一个包装的股票Mozilla Rhino?
我可以选择一个与Java 7兼容的Nashorn后端。
如果改用Apache而不是JSR-223,我会得到更好的服务吗?
发布于 2015-08-24 17:01:38
Apache似乎没有积极的开发,所以我排除了它。
我无法为Java 7找到Nashorn的后端。
我能够从这里使用JSR-223包装器:https://java.net/projects/scripting/sources/svn/show/trunk/engines/javascript。
通过将RhinoScriptEngine实现(和相关类)分离到它自己的Maven项目中,我能够创建一个工件,它既包括JSR-223包装器,也包括所需的任何特定版本的Rhino。
发布于 2017-08-03 10:04:45
当前web上可用的解决方案(如以下两种)是基于本地构建的,而不是基于Maven这样的系统,而且该解决方案更容易基于Maven存储库获得工作,只需在下面添加依赖项,它将自动引入org.mozilla:rhino。
<dependency>
<groupId>cat.inspiracio</groupId>
<artifactId>rhino-js-engine</artifactId>
<version>1.7.7.1</version>
<dependency>https://stackoverflow.com/questions/32150689
复制相似问题