我正在尝试使用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项目毫无帮助。

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

其他回答

我解决了。我跑了:

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386

该错误具有误导性,不支持major.minor版本51.0。这给人一种不支持版本51(Java 7)的印象。我们应该使用Java 6。

错误应该是:

不支持当前的Java版本50。改用Java版本7(51:0及更高版本)`

问题的答案是:

线程“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

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

将其添加到pom.xml文件中:

<project ....>
    <properties>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>
</project>

其中1.7是您打算使用的Java版本。这将覆盖Maven编译器设置,因此从这里进行调试是很好的。

当我安装JDK1.7时,问题得到了解决。

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