Java将Nashorn作为JSR 223的新JavaScript实现(javax.scripting)。 尽管这无疑是个好消息(通过直接生成Java代码,Nashorn比Rhino快得多),但它也带来了一些挑战:
Nashorn与Rhino并非100%兼容 。
Rhino对如何将Java世界与JavaScript结合使用进行了一些扩展和或多或少的其他解释。 因此,您不能简单地用Nashorn代替Rhino。 一种情况(毁了我们的时代)是您不能在实例上调用静态方法。 因此,我们必须在Java 8中启动Rhino并使其运行,直到我们重新编写脚本为止。
尽管java.net中提供了广泛的文档,但仍然有些混乱(某些URL错误,缺少一些步骤)。 因此,以下是对我们有用的步骤:
- 下载Rhino: https : //github.com/downloads/mozilla/rhino/rhino1_7R4.zip
- 下载JSR-223:svn结帐svn结帐https://svn.java.net/svn/scripting~svn
是的,URL中的〜! - cd脚本〜svn / trunk / engines / javascript / lib
- 从rhino1_7R4.zip将js.jar复制到此目录(替换现有的js.jar)
- cd ../make
- 蚂蚁清理所有
- 将../build/js-engine.jar和js.jar(Rhino的)复制到您的类路径中
- 现在更改:ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName(“ js “);可以:ScriptEngineManager管理器= new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName(“ rhino ”);
这就是将Rhino移植到Java 8所需要的。
翻译自: https://www.javacodegeeks.com/2015/04/using-rhino-with-java-8.html