【发布时间】:2014-05-22 19:48:26
【问题描述】:
我完全知道这个问题已经在这个帖子中以某种方式提出:
Cassandra:UnsupportedClassVersionError
但是,我接受的那里给出的答案并不能解决我的问题,因为我确实有一个当前版本的 Java,详情如下:
D:\Development\Cassandra\apache-cassandra-2.0.6>java -versionjava 版本“1.7.0_45” Java(TM) SE 运行时环境 (build 1.7.0_45-b18) Java HotSpot(TM) Client VM(build 24.45-b08,混合模式,共享)
知道了这一点,我在启动Cassandra时仍然收到错误:
D:\开发\Cassandra\apache-cassandra-2.0.6>bin\cassandra -f 启动 Cassandra 服务器 线程“主”java.lang.UnsupportedClassVersionError 中的异常:org/apache/cassandra/service/CassandraDaemon:不支持的major.minor 版本51.0 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:615) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 在 java.net.URLClassLoader.access$000(URLClassLoader.java:58) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:197) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247) 找不到主类:org.apache.cassandra.service.CassandraDaemon。程序将退出。
我在 Windows XP 机器上运行,使用命令提示符(不是 Cygwin)来启动 Cassandra,我能够毫无问题地启动旧版本的 Cassandra(apache-cassandra-1.1.4)。我是在使用更高版本的 Cassandra 时做错了什么,还是在我的配置中遗漏了一些非常明显的东西?
【问题讨论】:
-
如何启动 cassandra?堆栈跟踪绝对不是由 Java 7 虚拟机生成的。
-
我使用 bin\cassandra -f 启动它,就像启动旧版本时一样。
-
JAVA_HOME 环境变量可能指向JDK6,而PATH 指向JDK7。这可以从命令行解释正确的 java 版本,而从 cassandra 启动脚本解释不正确。
"%JAVA_HOME%\bin\java" -version(在 Windows 上)的输出是什么? -
或者在您的
cassandra.in.sh之一中有一个JAVA_HOME条目。 -
不,我已经确定我的 JAVA_HOME 和 PATH 都包含正确的设置,例如JAVA_HOME = D:\Development\Java\jdk1.7.0_45\ 和 PATH = D:\Development\Java\jdk1.7.0_45\bin;