向 Eclipse 运行时添加外部 JS 引擎以在 Java 15 中使用 Eclipse Java Compiler 和 <script>

问题描述

我有一个包含一些 <script> 任务的 Ant 脚本,它应该运行:

-Djavac.compiler=org.eclipse.jdt.core.JDTCompilerAdapter

也就是说,它依赖于在与 Eclipse 相同的 JRE 中运行。当我尝试在最新的 Eclipse 中启动这个 Ant 脚本时,它失败了:

Java 15 has removed Nashorn,you must provide an engine for running JavaScript yourself.
BUILD Failed
buildJars.xml:86: Unable to create javax script engine for javascript

我下载了 Nashorn 及其依赖项 jar 并将它们添加到 Window/Preferences 中的 Ant 运行时,但它没有改变任何事情。

解决方法

下载 nashorn-core-15.0.jar 及其依赖项(使用 maven)。将所有罐子复制到已知位置,例如 C:/keep/eclipse/nashorn 编辑 eclipse.ini 并在 -vmargs 下方添加:

--module-path=C:/keep/eclipse/nashorn
--add-modules=ALL-MODULE-PATH

不要替换现有的 --add-modules=ALL-SYSTEM。 Eclipse 需要那个