给出这样的异常:
java.lang.UnsupportedClassVersionError: com/sun/tools/javac/Main : Unsupported major.minor version 52.0
我知道这是因为 JDK 和 JRE 不兼容。但是,当我输入时:
which java
输出是:
/usr/java/jdk1.6.0_24/bin/java
输入时:
which javac
输出是:
/usr/java/jdk1.6.0_24/bin/javac
版本兼容。那有什么问题呢?
最佳答案
问题通常是由以下序列引起的:
代码使用新的 JDK 编译,“目标”设置为当前版本的 Java。
尝试使用较旧的 JDK 或 JRE 运行代码。
在这种情况下,次要版本 52 意味着某些内容已使用 Java 8 JDK 编译,并以 Java 8 作为目标平台,并且您正尝试在较旧的 JRE/JDK 上运行它。
您也可以从其他地方获得为 Java 8 编译的 JAR 文件。
要解决您的问题,您需要弄清楚:
哪个类文件或哪些文件有版本号问题(异常信息应该告诉你第一个...),
类文件来自哪里(来自 JAR 文件?来自文件系统?),然后
虽然您以为是用 Java 6 编译的,但它怎么会用 Java 8 编译。
无法加载的类是使用Java 8(或更高版本)编译器编译的,这是不争的事实。您需要找出原因,然后使用旧版 JDK 重新编译它,或使用 Java 8 运行它。
关于java - Java 中不受支持的 major.minor 52.0 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26529428/