Java错误:尝试在OS X上运行Cassandra时,.class文件中的版本号错误

Sam*_*Lee 11 java

我试图让Cassandra在OS X上工作.当我运行时bin/cassandra,我收到以下错误:

~/apache-cassandra-incubating-0.4.1-src > bin/cassandra -f
Listening for transport dt_socket at address: 8888
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
 at java.lang.ClassLoader.defineClass1(Native Method)
 at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
 at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
 at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
 at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
 at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
Run Code Online (Sandbox Code Playgroud)

从我可以通过搜索确定,这个错误与Java的不兼容版本有关.但是,据我所知,我有最新版本的Java:

    ~/apache-cassandra-incubating-0.4.1-src > java -version
    java version "1.6.0_13"
    Java(TM) SE Runtime Environment (build 1.6.0_13-b03-211)
    Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02-83, mixed mode)
    ~/apache-cassandra-incubating-0.4.1-src > javac -version
    javac 1.6.0_13
    ~/Downloads/apache-cassandra-incubating-0.4.1-src > echo $JAVA_HOME
    /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
Run Code Online (Sandbox Code Playgroud)

关于我做错了什么的任何想法?

pax*_*blo 18

糟糕的版本号几乎总是因为您已经将java文件编译为具有一个版本的类文件,并且正在尝试使用早期版本运行它.

你需要确定这个"cassandra"正在使用你认为它的Java版本.它不一定使用从命令提示符运行java时获得的相同内容.