Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 启动Cassandra 2.0.6时不支持ClassVersionError_Java_Cassandra - Fatal编程技术网

Java 启动Cassandra 2.0.6时不支持ClassVersionError

Java 启动Cassandra 2.0.6时不支持ClassVersionError,java,cassandra,Java,Cassandra,我完全知道这个问题已经在这个帖子中被问到了: 但是,这里给出的答案(我接受)并不能解决我的问题,因为我有一个Java的当前版本,详情如下: java版本1.7.0_45 JavaTM SE运行时环境构建1.7.0_45-b18 Java HotSpotTM客户端虚拟机构建24.45-b08,混合模式,共享 知道这一点,我在启动Cassandra时仍然收到错误: D:\Development\Cassandra\apache-Cassandra-2.0.6>bin\Cassandra-f 启动Ca

我完全知道这个问题已经在这个帖子中被问到了:

但是,这里给出的答案(我接受)并不能解决我的问题,因为我有一个Java的当前版本,详情如下:

java版本1.7.0_45 JavaTM SE运行时环境构建1.7.0_45-b18 Java HotSpotTM客户端虚拟机构建24.45-b08,混合模式,共享

知道这一点,我在启动Cassandra时仍然收到错误:

D:\Development\Cassandra\apache-Cassandra-2.0.6>bin\Cassandra-f 启动Cassandra服务器 主线程java.lang.UnsupportedClassVersionError:org/apache/cassandra/service/cassandrademon中出现异常:不支持的major.minor版本51.0 在java.lang.ClassLoader.defineClass1Native方法中 位于java.lang.ClassLoader.defineClassCondClassLoader.java:631 位于java.lang.ClassLoader.DefineClassLoader.java:615 位于java.security.SecureClassLoader.defineClassSecureClassLoader.java:141 位于java.net.URLClassLoader.defineClassURLClassLoader.java:283 在java.net.URLClassLoader.access$000URLClassLoader.java:58 在java.net.URLClassLoader$1.runURLClassLoader.java:197 位于java.security.AccessController.doPrivilegeEdNative方法 位于java.net.URLClassLoader.findClassURLClassLoader.java:190 位于java.lang.ClassLoader.LoadClassLoader.java:306 位于sun.misc.Launcher$AppClassLoader.loadClassLauncher.java:301 位于java.lang.ClassLoader.LoadClassLoader.java:247 找不到主类:org.apache.cassandra.service.cassandrademon。程序将退出

我在Windows XP机器上运行,使用命令提示符not Cygwin启动Cassandra,并且我能够启动旧版本的Cassandra,而不会出现任何问题apache-Cassandra-1.1.4。我是否对更高版本的Cassandra做了一些不正确的事情,或者我在配置中遗漏了一些显而易见的东西?

对该异常唯一合理的解释是,使用Java 6或更早版本的JVM运行为Java 7目标平台编译的代码

这与你认为正在发生的事情相矛盾。然而,这是唯一合理的解释

我建议您在同一目录中复制cassandra包装器脚本,并将其破解为:

在开始处添加set-x以查看脚本实际运行的命令

添加echo$PATH、echo$JAVA_HOME等,查看脚本环境中的关键环境变量

添加一行代码,使用与实际运行JVM所使用的完全相同的命令路径来运行java-version


这应该会揭示出您对正在发生的事情的哪些信念/假设是不正确的。

我确实尝试过卸载java 1.7并安装最新的java 8,解决了我的问题。

您如何启动cassandra?stacktrace肯定不是由Java 7 vm生成的。我使用bin\cassandra-f启动它,就像启动旧版本一样。Java_HOME环境变量可能指向JDK6,而路径指向JDK7。这将解释命令行中正确的java版本和cassandra启动脚本中不正确的java版本。Windows上%JAVA\u HOME%\bin\JAVA-version的输出是什么?或者您的一个cassandra.in.sh.No中有一个JAVA\u HOME条目,我已经绝对确保我的JAVA\u HOME和PATH都包含正确的设置,例如JAVA\u HOME=D:\Development\JAVA\jdk1.7.0\u 45\和PATH=D:\Development\JAVA\jdk1.7.0\u 45\bin;
D:\Development\Cassandra\apache-cassandra-2.0.6>java -version