【问题标题】:Cassandra: Unable to create javax script engine for javascriptCassandra:无法为 javascript 创建 javax 脚本引擎
【发布时间】:2022-01-16 04:34:24
【问题描述】:

我正在尝试构建 apache cassandra 项目,关注 (this)。 我的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

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

【问题讨论】:

  • 看起来您确实在使用 Java 15 或更高版本。检查 JAVA_HOME 指向的内容。
  • java.home = /Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home
  • 请参阅this answer 以查找 Java 版本 15+ 的 ant 脚本替代方案

标签: java cassandra nashorn


【解决方案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 版本设置为打开 jdk17,而 JAVA_HOME 在我的情况下设置为 11。

我强制 maven 运行我的 JAVA_HOME 版本的方法是使用:

JAVA_HOME=$JAVA_HOME mvn clean install

这就是我修复 ant 的 Unable to create javax script engine for javascript 所要做的全部工作

我在做一个不同的项目(不是 cassandra),但你的问题很像我的环境和我得到的调试输出。

再次,希望这个回复会产生一些活动,并且有更多 Maven 经验的人可以提供比我更好的输入。

希望这对遇到类似问题的人有所帮助。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2023-01-30
      • 2021-07-01
      • 1970-01-01
      • 2012-03-28
      • 2019-05-05
      • 2021-12-20
      • 2019-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多