Francisco Alvarado Asked: 2020-12-02 15:34:41 +0800 CST 2020-12-02 15:34:41 +0800 CST 2020-12-02 15:34:41 +0800 CST Java中的“不支持的major.minor版本”错误 772 尝试运行用java制作的类时,我收到以下错误消息: java.lang.UnsupportedClassVersionError:MyClass(不支持的major.minor 50.0版) 这个错误信息是什么意思? jvm 2 Answers Voted Best Answer Francisco Alvarado 2020-12-02T15:34:41+08:002020-12-02T15:34:41+08:00 这个错误是由于你的电脑默认的JVM(Java Virtual Machine:Java虚拟机),试图执行一个在高于JVM的JDK(Java Development Kit:Java Development Kit)版本编译的类(例如,尝试使用 JVM 1.4 执行在 JDK 1.6 中编译的类)。 如果要检查冲突类的版本,运行javapJDK自带的反编译器命令,从%JAVA_HOME%\bin(建议从JDK的最新版本开始)运行。 例如,如果您想知道该类是在哪个 Java 版本中编译的MiClase.class,请运行以下命令: javap -verbose MiClase.class | findstr "major"这将返回类似: 主要版本:50 javap -verbose MiClase.class | findstr "minor"这将返回类似: 次要版本:0 因此,迄今为止,Java 版本与其“主要版本”之间的等价关系如下: Java 1.2 对应主要版本 46 Java 1.3 对应主要版本 47 Java 1.4 对应主要版本 48 Java 5 对应主要版本 49 Java 6 对应主要版本 50 Java 7 对应主要版本 51 Java 8 对应主要版本 52 (上市来源) 这是使用命令进行此检查的一种简单方法javap,尽管还有更多方法。如果您认识他们,欢迎您将您的贡献作为对此答案的评论。 OscarRyz 2020-12-02T15:50:04+08:002020-12-02T15:50:04+08:00 您正在使用比编译时更低的版本运行程序。 例如,您使用 1.8 编译并尝试在 1.7 版本上运行
这个错误是由于你的电脑默认的JVM(Java Virtual Machine:Java虚拟机),试图执行一个在高于JVM的JDK(Java Development Kit:Java Development Kit)版本编译的类(例如,尝试使用 JVM 1.4 执行在 JDK 1.6 中编译的类)。
如果要检查冲突类的版本,运行
javap
JDK自带的反编译器命令,从%JAVA_HOME%\bin
(建议从JDK的最新版本开始)运行。例如,如果您想知道该类是在哪个 Java 版本中编译的
MiClase.class
,请运行以下命令:javap -verbose MiClase.class | findstr "major"
这将返回类似:javap -verbose MiClase.class | findstr "minor"
这将返回类似:因此,迄今为止,Java 版本与其“主要版本”之间的等价关系如下:
(上市来源)
这是使用命令进行此检查的一种简单方法
javap
,尽管还有更多方法。如果您认识他们,欢迎您将您的贡献作为对此答案的评论。您正在使用比编译时更低的版本运行程序。
例如,您使用 1.8 编译并尝试在 1.7 版本上运行