我正在尝试使用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变量有什么区别?


当前回答

我使用的是OS X v10.11.5(El Capitan),我尝试设置JAVA_HOME并通过Maven强制“正确”JAVA版本。没什么帮助。

当应用程序仍在运行时,OS X帐户注销时发生了问题。再次登录后,OS X打开了具有灰色历史记录的旧终端会话。我使用相同的终端会话来构建项目,但由于不支持的类版本错误而失败。

清理Maven项目毫无帮助。

为了解决这个问题,我只需关闭自动打开的终端窗口并使用一个新窗口。

其他回答

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

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

javac -version

java -version

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

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

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

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

您可以用Java7编译一些JAR库,而Java运行时只有Java6。这可能发生在一些新的图书馆中。

单击项目中的“财产”。转到Java构建路径。单击“添加库”。单击JRE系统库上的下一步。如果默认情况下未选择,请选择所需的选项。单击“完成”。

你完了!

基于此。。。

J2SE 8 = 52
J2SE 7 = 51
J2SE 6.0 = 50
J2SE 5.0 = 49
JDK 1.4 = 48
JDK 1.3 = 47
JDK 1.2 = 46
JDK 1.1 = 45

在Eclipse中,右键单击包资源管理器中的项目:

生成路径->配置生成路径

低于:

Java构建路径->库->添加库->JRE系统库->安装的JRE->搜索。

搜索完成后,通过在可用列表中选择库来添加所需的JRE。

问题的答案是:

线程“main”java.lang.UnsupportdClassVersionError:edu/stvens/cs549/dhts/main/LocalContext:不支持的major.minor版本52.0

我也有同样的问题。对于那些在AWS ec2实例中遇到这种问题的人,他们不知怎么被重定向到了这个问题。我正在回答这些问题,并想分享我是如何做到的。我遇到了麻烦,因为AmazonEC2实例运行的是java 1.7版,可能我的项目与它不兼容,因为我使用的是Maven,它是为java 1.8预先配置的。所以我安装了新版本的java:

sudo yum-y安装java-1.8.0

然后,重要的一步是删除旧版本:

sudo yum remove java-1.7.0-openjdk

记得在安装新版本后删除它,否则它将继续使用相同的旧版本,我希望它能解决您的问题,我的情况就是这样。