Java 17 中使用 ScriptEngine 解析 JavaScript 脚本
Java JavaScript About 1,164 wordsScriptEngine
ScriptEngine
位于javax.script
包下,Java 17
中依然可用(移除的是Nashorn
模块)。
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine e = mgr.getEngineByName("JavaScript");
String t = "5*7";
System.out.println(e.eval(t).toString());
Nashorn
Nashorn
模块在Java 11
中被标记为过时,在Java 15
中被移除。
查看可用脚本引擎
备注:GraalVM
默认只有占位的Placeholder
引擎(仅占位,无任何作用)。
new ScriptEngineManager().getEngineFactories();
graal.js
添加依赖
js
这个依赖大小为23MB
、js-scriptengine
大小为600KB
。
<dependency>
<groupId>org.graalvm.js</groupId>
<artifactId>js</artifactId>
<version>22.3.0</version>
</dependency>
<dependency>
<groupId>org.graalvm.js</groupId>
<artifactId>js-scriptengine</artifactId>
<version>22.3.0</version>
</dependency>
代码
// Graal
ScriptEngine graalEngine = new ScriptEngineManager().getEngineByName("graal.js");
graalEngine.eval("print('Hello World!');");
替代品
迁移到 GraalVM JavaScript
https://docs.oracle.com/en/graalvm/enterprise/22/docs/reference-manual/js/NashornMigrationGuide
OpenJDK Nashorn 定制版本
https://github.com/openjdk/nashorn
AviatorScript
Views: 4,432 · Posted: 2023-06-22
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...