getEngineByName(“JavaScript”)在Java 11上返回null

getEngineByName(“JavaScript”)在Java 11上返回null,java,java-11,nashorn,Java,Java 11,Nashorn,我正在尝试让我的应用程序运行Java11。我正在构建我自己的jre,并且已经包含了模块java.scripting,但是在运行时这个调用 ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("JavaScript"); 将引擎设置为空 我知道Nashorn已经从Java 11中弃用了,但它实际上还没有被删除,所以为什么我会遇到这个问题?如何将

我正在尝试让我的应用程序运行Java11。我正在构建我自己的jre,并且已经包含了模块
java.scripting
,但是在运行时这个调用

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
引擎
设置为


我知道Nashorn已经从Java 11中弃用了,但它实际上还没有被删除,所以为什么我会遇到这个问题?

如何将模块
jdk.scripting.Nashorn
添加到模块图中

java --add-modules jdk.scripting.nashorn

你能试试这个吗?

对你有什么帮助吗?这并不是因为我的代码没有改变,我刚从Java 10上运行转到Java 11上,你使用哪个版本?更准确地说,哪个发行版、哪个体系结构、哪个JVM(J9与Hotspot)?以前是哪一个?在我的机器上,我用Oracle11和AdoptOpen12进行了检查,在这两种情况下,Nashoren都在场……Oracle java 10热点->Windows上的AdoptOpenJDK11.0.6热点。另一个变化是我正在使用jlink的精简运行时,我是否需要java.scripting以外的其他模块来编写Javascript?谢谢,这就是问题所在。在eclipse中如何做到这一点?android中也存在类似的问题,有什么解决方案吗?