我正在尝试使用Java 11 (Oracle)运行Cassandra v2.1.17,但无法启动它。我已经将cassandra-env.sh中的所有JVM更新为Java11等效项,但现在在启动时收到以下错误:
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我看了很久,这个类似乎在Java9中被删除了,或者至少被弃用了,但仍然可以使用--add-modules=jdk.unsupported访问。将此代码添加到我的JVM参数中没有任何帮助。
是否可以在Oracle Java 11上运行Cassandra 2.1.17?我可以看到这个类仍然在OpenJDK 11 (https://hg.openjdk.java.net/jdk/jdk11/file/6889f13694c6/src/jdk.unsupported/share/classes/sun/misc/Unsafe.java)中,但是我被Centos6卡住了,并且找不到它的安装。
发布于 2021-11-12 15:18:30
@MeanwhileInHell,JDK 11对Apache Cassandra(R)的支持仅在最近的Cassandra 4.0版本中进行了探索,我不认为它在非常旧的和不受支持的版本中可用,如2.x。有关更多详细信息,请参阅https://cassandra.apache.org/doc/latest/cassandra/new/java11.html文档。
https://issues.apache.org/jira/browse/CASSANDRA-9608报道了详细信息。
https://stackoverflow.com/questions/69944503
复制相似问题