Cassandra:无法为javascript创建javax脚本引擎



我正在尝试构建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

解决此问题的好方法是什么?

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

如果您通过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版本设置为打开jdk17,而在我的情况下,Java_HOME设置为11。

我所做的强迫maven运行我的JAVA_HOME版本是使用:

JAVA_HOME=$JAVA_HOME mvn clean install

为了修复蚂蚁的Unable to create javax script engine for javascript,我只需要做这些

我在做一个不同的项目(不是cassandra(,但你的问题与我的环境和我得到的调试输出非常相似。

同样,希望这个回复能产生一些活动,并且在Maven方面更有经验的人可以提供比我更好的输入。

希望这能帮助任何有类似问题的人。

Nashorn仍然可用作OpenJDK Nashorn,一个独立的库。它发布在Maven Central上,因此您可以很容易地将其作为Maven项目的依赖项。

最新更新