运行 Java 11 上的 Cassandra 2.1.17

Running Cassandra 2.1.17 on Java 11

我正在尝试使用 Java 11 (Oracle) 获取 Cassandra v2.1.17 运行ning,但无法启动它。我已将 cassandra-env.sh 中的所有 JVM args 更新为 Java 11 等价物,但我现在在启动时收到以下错误:

ERROR 14:48:10 Exception encountered during startup
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: sun.misc.Unsafe.monitorEnter(Ljava/lang/Object;)V
   at com.google.common.base.Throwables.propagate(Throwables.java:160) ~[guava-16.0.jar:na]
   ...
   ...
   ...
Caused by: java.lang.NoSuchMethodError: sun.misc.Unsafe.monitorEnter(Ljava/lang/Object;)V

我仔细查看了一下,似乎这个 class 在 Java 9 中被删除了,或者至少被弃用了,但仍然可以使用 --add-modules=jdk.unsupported 访问。将此添加到我的 JVM args 没有帮助。

是否可以在 Oracle Java 11 上 运行 Cassandra 2.1.17?我可以看到 class 仍在 OpenJDK 11 (https://hg.openjdk.java.net/jdk/jdk11/file/6889f13694c6/src/jdk.unsupported/share/classes/sun/misc/Unsafe.java) 中,但我一直在使用 Centos6,无法找到它的安装程序。

@MeanwhileInHell,JDK 11 仅在最近的 Cassandra 4.0 版本中探索了对 Apache Cassandra(R) 的支持,我认为它在 2.x 等更旧且不受支持的版本中不可用.请参阅 https://cassandra.apache.org/doc/latest/cassandra/new/java11.html 文档了解更多详细信息。

https://issues.apache.org/jira/browse/CASSANDRA-9608有详细信息。