Java 11 的 Nashorn 替代品

我在 Java 11 中使用 Nashorn JavaScript 引擎,它运行良好,但很快就会被弃用。我尝试过 GraalVM,我发现它更糟糕,因为执行一个简单的表达式(例如 2+3)需要 13-14 秒。我是否可以使用其他替代方案,或者我应该尝试使用其他方法(如果有)使用 GraalVM?


ScriptEngineManager mgr = new ScriptEngineManager();

ScriptEngine engine = mgr.getEngineByName("javascript");

engine.eval("2+3");


慕工程0101907
浏览 195回答 2
2回答

qq_遁去的一_1

更新(2022 年 6 月):截至2022年,J2V8似乎也维护得很差。最好把目光投向Javet如果有人仍然认为这个问题相关,那么 Nashorn/Rhino 脚本引擎的一个可行的、仍然积极维护的替代方案是JVM 的J2V8绑定。通过 JNI 内置多平台支持尽管其机制与 API 略有不同ScriptEngine,但性能(如预期)更好。而且您不必处理奇怪的副作用,例如由于滥用 API 导致的意外类加载。我自己过去曾成功地使用过它。

倚天杖

您可以使用Rhino作为替代品Rhino 仍然作为一个开源项目进行维护,因此有着社区参与的历史。对于某些用途,它显然更优越,因为它的启动时间更快。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java