如何修复错误java.lang.UnsupportedClassVersionError: Unsupported major.minor version

0 投票
最新提问 2月 13, 2017 用户: 点心 (340 分)

我试着使用Notepad++作为我的一体化工具编辑、运行、编译Java程序。
我已安装好了JRE,并且设置了path变量到 ../bin 目录。
当我在Notepad++中运行我的“Hello world”程序时,收到下面的错误消息:

java.lang.UnsupportedClassVersionError: test_hello_world :
 Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
       .........................................

我想这个问题可能是版本方面的,是否某些版本的Java太旧或太新,如何解决它?
我应该安装JDK,并将我的路径变量设置为JDK而不是JRE?
PATH环境变量设置为JRE或JDK之间有什么区别?

1个回答

0 投票
最新回答 2月 13, 2017 用户: 晴澈 (290 分)

java.lang.UnsupportedClassVersionError 发生的原因是编译时的JDK较高,运行时JRE较低。

提示信息中显示的版本号(如你例子中第二行最后的51.0)描述了类文件与之兼容的JRE的版本。

版本号的主数字如下:

Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

(来源:维基百科

要解决实际的问题,您应该尝试使用较新版本的Java JRE运行Java代码,或者向Java编译器指定目标参数,以指示编译器创建与早期Java版本兼容的代码。

例如,为了生成与Java 1.4兼容的类文件,请使用以下命令行:

javac -target 1.4 HelloWorld.java

对于较新版本的Java编译器,您可能会收到关于未设置引导类路径的警告。

最好的解决方法:安装相同版本的 JRE / JDK

JRE 6 - > JDK 6
JRE 7 - > JDK 7

欢迎来到编程助手,编程方面有什么不懂的问题可以尽管在这里提问,你将会收到热心爱好者的回答。
...