当前位置: 首页 > 面试题库 >

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

孟修竹
2023-03-14
问题内容

我试图让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)

通过搜索可以确定,该错误与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

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


问题答案:

错误的版本号几乎 总是这样, 因为您已经将Java文件编译为具有一个版本的类文件,并尝试使用较早版本运行它。

您需要确定此“ cassandra”正在使用您认为的Java版本。从命令提示符运行Java时,不一定使用与您得到的相同的代码。



 类似资料:
  • 问题内容: 当我包含必须从源代码编译的开源库时,出现此错误。现在,网络上的所有建议都表明该代码是在一个版本中编译并在另一版本(旧版本中是新版本)中执行。但是,我的系统上只有一个JRE版本。如果我运行命令: 并在Eclipse中检查Java库的属性,我得到 因此,我必须得出结论,类本身内部的其他东西引发了异常?那有可能吗? 问题答案: 我了解到这样的错误消息通常是正确的。当无法(按您的想法)想到所报

  • 我当前的java版本是7: 我有命令,其中设置为8: 现在的问题是。当我在项目中运行我的一个配置文件(有生成文件的maven exec插件)时: 我得到了例外: 所以它似乎仍然需要我的系统java。为什么当mvn版本打印java8时?当我更改我的系统java时,它可以正常工作。这是maven的一些功能,也可能是我使用的插件问题? 更新: 调试maven exec插件时,我看到这一行: 所以问题是如

  • 我需要用于Angular 8 CLI的node10版本,并且在使用node10时。16.2,我得到如下所示的错误,并在运行 SyntaxError:在导出时,在严格模式之外尚不支持块作用域声明(let、const、function、class)。在模块上运行InthisContext(vm.js:53:16) _在对象上编译(module.js:387:25) 。模块_扩展。。js(module.

  • 命令:“C:\program files\java\jdk1.7.0_07\bin\java.exe”-classpath“C:\users\zachsta\downloads;C:\program files\java\jdk1.7.0_07\jre\lib\rt.jar;C:\program files\java\jdk1.7.0_07\lib\dt.jar;C:\program files\

  • 我已经在我的Ubuntu16.04上安装了JDK1.8,为了完成一些我必须安装JDK1.7的工作,我没有对旧版本做任何操作就安装了它,并且更改了$JAVA_HOME以指向新安装的位置。 echo运行良好,显示新安装的版本为1.7 但当我执行时,它显示的是较早安装的版本,即1.8。 如果我错在什么地方,请纠正我,我需要很好的解释这一点。 谢谢你。这是我的终端机

  • 文件"C:\Program Data\Anaconda3\Script\tensorboard-script.py",第10行,sys.exit(run_main())文件"C:\Program Data\Anaconda3\lib\site-包\拉伸板\main.py",第57行,run_mainapp.run(tensorboard.main,flags_parser=tensorboard.