Java 11 的 Rhino 替代品

Nashorn alternative for Java 11

我在 Java 11 中使用 Nashorn Java脚本引擎,它工作正常,但很快就会被弃用。我已经尝试过 GraalVM,我发现它更糟糕,因为它需要 13-14 秒来执行一个简单的表达式(例如 2+3)。有没有我可以使用的其他替代方法,或者我应该使用其他方法尝试 GraalVM(如果有的话)?

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("javascript");
engine.eval("2+3");

您可以使用Rhino as replacement

Rhino still is being maintained as an open-source project and so has a history of community involvement. For some uses, it’s clearly superior because of its faster startup time.

如果有人仍然认为这个问题相关,Nashorn/Rhino 脚本引擎的一个可行的、仍在积极维护的替代方案是 JVM 的 J2V8 绑定。

可以找到工件 here(一定要使用这个 link 来获取更新版本)

Multi-platform 支持是通过 JNI 内置的

尽管其机制与 ScriptEngine API 的机制略有不同,但性能(如预期)更好。而且你不必处理奇怪的副作用,比如因误用 API.

而导致的意外 class-loading

我自己过去也成功使用过