我在eclipes中遇到这个错误java.lang.UnsupportedClassVersionError: Bad version number in .class file.
当我运行javac -version它打印
javac 1.5.0_28
Run Code Online (Sandbox Code Playgroud)
如果我右键单击,eclipes,属性 - > java编译器,它说我正在使用1.5,如果我然后去java build path,我JRE System Library [JVM 1.5.0 (MacOS X Default)]在那里.
为什么我会收到此错误,如何解决?
EDITS
java -version 版画
java version "1.5.0_28"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_28-b04-382-9M3326)
Java HotSpot(TM) Client VM (build 1.5.0_28-157, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
我的应用程序中的其他库是libgdx库.
完整的错误是
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:676)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at …Run Code Online (Sandbox Code Playgroud) 我正在尝试下载并安装这个 Maven 插件:
https://github.com/mirkonasato/graphipedia
我cd在目录中并运行
mvn clean install
Run Code Online (Sandbox Code Playgroud)
我今天在 Mac 上使用 homebrew 安装了 mvn,所以它应该是最新的。我收到的错误是:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project graphipedia-dataimport: Compilation failure
[ERROR] error: Exception thrown while constructing Processor object: org/neo4j/kernel/impl/annotations/ServiceProcessor : Unsupported major.minor version 51.0
Run Code Online (Sandbox Code Playgroud)
我用 google 搜索了这个错误,发现有几个人说,原因可能是旧的 Java 版本。所以我检查了我的系统偏好设置,它显示 Java 7。
但我真的不相信这一点并跑了
mvn --version
Run Code Online (Sandbox Code Playgroud)
这给了我这个输出
Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T22:58:10+02:00)
Maven home: /usr/local/Cellar/maven/3.2.3/libexec
Java version: 1.6.0_65, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: de_DE, platform encoding: MacRoman
OS name: "mac os …Run Code Online (Sandbox Code Playgroud) 我对 Gradle 非常陌生,我想尝试一下这个很酷的项目:Strange,一个用于 Java 的量子计算 API(我将在下面留下指向 github 项目的链接)。他们推荐使用 Gradle,所以我这样做了。
在我正在处理的目录中,只有 3 个文件:
现在我只想在我的目录中测试命令:
$ gradle tasks
Run Code Online (Sandbox Code Playgroud)
我得到了这个:
FAILURE:构建失败,出现异常。* 出了什么问题:java.lang.UnsupportedClassVersionError: org/javamodularity/moduleplugin/ModuleSystemPlugin 已由更新版本的 Java Runtime(类文件版本 55.0)编译,此版本的 Java Runtime 仅识别最高版本的类文件52.0
org/javamodularity/moduleplugin/ModuleSystemPlugin 已由更新版本的 Java Runtime(类文件版本 55.0)编译,此版本的 Java Runtime 仅识别高达 52.0 的类文件版本
我的 Java 设置为 1.8
我使用 SDKMAN 安装了 Gradle
build.gradle的内容如下:
plugins {
id 'java'
id 'application'
id 'org.javamodularity.moduleplugin' version '1.2.1'
}
group 'helloStrangeWorld'
version '1.0-SNAPSHOT'
repositories {
mavenCentral() …Run Code Online (Sandbox Code Playgroud) 我试图通过谷歌来源自己的AOSP建立.我完成了Google文档中提到的步骤,并成功构建了它,并成功地使用图像刷新了我的设备.但是,我做了一些更改后尝试再次构建它(基本上只是添加了一些日志来玩它).构建错误了.然后我再次尝试制作,它说Javac 1.6发现了.必需的Javac 1.7.然后,我使用以下命令跟踪此特定问题的答案:
update-alternatives --config javac
There are 2 choices for the alternative javac (providing /usr/bin/javac).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-7-openjdk-amd64/bin/javac 1051 auto mode
* 1 /usr/lib/jvm/j2sdk1.6-oracle/bin/javac 315 manual mode
2 /usr/lib/jvm/java-7-openjdk-amd64/bin/javac 1051 manual mode
Run Code Online (Sandbox Code Playgroud)
然后我选择了选项0.然后我再次尝试制作.这次失败并出现以下错误:
java.lang.UnsupportedClassVersionError: com/google/doclava/Doclava : Unsupported major.minor version 51.0 android build
Run Code Online (Sandbox Code Playgroud)
在经历了这个问题的所有答案之后(我发现这个问了很多次),我发现这是因为编译时间(更高版本)和运行时间(更低版本)JDK不匹配,我应该使用Java 1.7重新编译它.我如何为Android构建做到这一点?我也很惊讶为什么我收到错误"Javac 1.6 found.需要Javac 1.7." 因为我使用Java 1.6成功创建了构建.
可能重复:
线程"main"中的异常java.lang.UnsupportedClassVersionError:a(不支持的major.minor版本51.0)
我得到错误"不支持的major.minor版本51.0".我正在使用jdk 1.6并使编译器合规性级别达到1.6并且jre是jre6.我仍然在犯同样的错误.
这是我的错误
java.lang.UnsupportedClassVersionError: transfer_1355215622877_662113 : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClass(JRClassLoader.java:245)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassFromBytes(JRClassLoader.java:154)
at net.sf.jasperreports.engine.design.JRAbstractJavaCompiler.loadEvaluator(JRAbstractJavaCompiler.java:76)
at net.sf.jasperreports.engine.design.JRAbstractCompiler.loadEvaluator(JRAbstractCompiler.java:327)
at net.sf.jasperreports.engine.design.JRDefaultCompiler.loadEvaluator(JRDefaultCompiler.java:218)
at net.sf.jasperreports.engine.fill.JRFillDataset.createCalculator(JRFillDataset.java:404)
at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:373)
Run Code Online (Sandbox Code Playgroud) Java 类版本可以使用以下命令从类二进制文件中获取javap
javap -verbose Test | grep 'minor\|major'
minor version: 0
major version: 55
Run Code Online (Sandbox Code Playgroud)
是否可以提前知道 JDK 将生成哪个类版本?
java -version不显示它
java -version
openjdk version "11.0.17" 2022-10-18
Run Code Online (Sandbox Code Playgroud)
我只是尝试ChronicleMap并立即遇到一个问题,"UnsupportedClassVersionError:Unsupported major.minor version 52.0".
我正在使用Java 7 ...我是否应该将此错误解释为表示Chronicle Map是在Java 8下编译的?我是否需要下载源代码并在Java 7下编译来解决此问题(这甚至可以工作)?