我调用getEngineByName(“JavaScript)返回空值。IntelliJ项目需要什么配置才能返回指定的脚本引擎?
ScriptEngineManager scriptEngineManager = new ScriptEngineManager(); ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("JavaScript");
我肯定忽略了什么。
du7egjpx1#
您需要自己添加OpenJDK Nashorn脚本引擎。
附加
<dependencies> <dependency> <groupId>org.openjdk.nashorn</groupId> <artifactId>nashorn-core</artifactId> <version>15.4</version> </dependency> </dependencies>
后藤https://mvnrepository.com/artifact/org.openjdk.nashorn/nashorn-core/15.4查找jar(2.1 MB)(https://repo1.maven.org/maven2/org/openjdk/nashorn/nashorn-core/15.4/nashorn-core-15.4.jar),下载此jar文件。将jar文件添加到项目库文件中。
package org.example; import javax.script.*; public class EvalScript { public static void main(String[] args) throws Exception { ScriptEngineManager scriptEngineManager = new ScriptEngineManager(); ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("JavaScript"); //ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("nashorn"); scriptEngine.eval("print('Hello, World')"); } }
1条答案
按热度按时间du7egjpx1#
您需要自己添加OpenJDK Nashorn脚本引擎。
如果使用Maven,则为pom.xml
附加
如果仅使用IntelliJ项目
后藤https://mvnrepository.com/artifact/org.openjdk.nashorn/nashorn-core/15.4
查找jar(2.1 MB)(https://repo1.maven.org/maven2/org/openjdk/nashorn/nashorn-core/15.4/nashorn-core-15.4.jar),
下载此jar文件。
将jar文件添加到项目库文件中。
示例代码