我正在尝试使用Notepad++作为我的多功能工具编辑、运行、编译等。

我安装了JRE,并将路径变量设置为/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吗?JRE或JDK中的PATH变量有什么区别?


当前回答

噢,Mac OS X我可以通过设置JAVA_HOME变量来解决这个问题:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home

其他回答

此错误表示您正在尝试加载一个Java“类”文件,该文件是用比您安装的Java版本更高的版本编译的。

例如,您的.class文件可能是为JDK7编译的,您正在尝试使用JDK6运行它。

因此,解决方案是:

升级Java运行时或如果有源代码,请使用本地Java编译器(如果有)重新编译类。javac文件名.java

对于开发人员来说,如果另一个开发人员签入了.class文件,并且他们得到了比您更新的java版本,则可能会发生这种情况!

您使用了更高版本的JDK来编译并尝试从更低版本的JDK/JJRE运行。

要检查此项,请参阅版本信息:

javac -version

java -version

它们会有所不同,javac的版本号会更高。

要解决这个问题,请使用JDK版本的java运行,或者如果您有一个新的JRE/JDK也可以运行。

javac将告诉您位置,例如/usr/bin/javac。只需使用/usr/bin/java<program>直接运行。

或者,可以将环境变量设置为永久解决方案。

我通过检查部署程序集中是否部署了Maven依赖项,为我解决了这个问题。就我而言,他们不是。

添加它解决了问题。

如果在生成路径中添加了第二个项目,请确保它具有与第一个项目相同的编译器版本:财产->Java编译器->编译器符合性级别

我也遇到了同样的问题,我在Mac上用这个解决方案解决了这个问题。我希望这对某人有所帮助。这是因为系统不知道更新版本的JDK,它仍然指向旧的JDK。