Cassandra: 无法创建JavaScript的javax脚本引擎。

4

我正在尝试构建Apache Cassandra项目,遵循(此链接)。 我的Mac机器上安装了JDK 11。当我运行'ant'命令时,出现错误:

% ant
Buildfile: ..../cassandra/build.xml
Java 15 has removed Nashorn, you must provide an engine for running JavaScript yourself. GraalVM JavaScript currently is the preferred option.

BUILD FAILED
..../cassandra/build.xml:152: Unable to create javax script engine for javascript

这个问题有什么好的解决办法吗?

1
看起来你正在使用Java 15或更高版本。检查一下JAVA_HOME指向哪里。 - polo-language
java.home = /Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home - Mandroid
请查看此答案,以找到Java 15+版本的Ant脚本替代方案。 - R. Oosterholt
2个回答

1

抱歉,这可能不是最好的答案,但我也遇到了同样的问题,并在回复中希望能够帮助您摆脱困境,同时等待更好的答案出现(我很想更好地了解为什么会发生这种情况)

如果你是通过Homebrew安装Maven的,那么你使用的JDK版本可能与JAVA_HOME设置的不同。

可以运行mvn -version来确认。在我的情况下,我得到了以下结果:

Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: /opt/homebrew/Cellar/maven/3.8.4/libexec
Java version: 17.0.1, vendor: Homebrew, runtime: /opt/homebrew/Cellar/openjdk/17.0.1_1/libexec/openjdk.jdk/Contents/Home
Default locale: en_MX, platform encoding: UTF-8

请注意,Java版本设置为open jdk17,而在我的情况下JAVA_HOME设置为11。

我为了强制maven运行我的JAVA_HOME版本所做的是使用:


代码如下:
JAVA_HOME=$JAVA_HOME mvn clean install

这就是我需要做的,以解决ant的“无法创建javax脚本引擎来运行javascript”问题。
我正在处理一个不同于cassandra的项目,但你的问题与我的环境和调试输出非常相似。
希望这个回复能够引起一些活动,有更多经验的Maven用户可以提供比我更好的输入。
希望这能帮助任何遇到类似问题的人。

0
Nashorn仍然作为OpenJDK Nashorn的独立库可用。它已发布在Maven Central上,因此您可以轻松地将其作为Maven项目的依赖项引入。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接