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


当前回答

当从Eclipse运行Ant时,我收到了同样的错误消息,但这里提到的其他解决方案并没有解决我的问题。有趣的是,从Windows命令行运行Ant运行得很好,所以这必须是Eclipse中的配置问题。

事实证明,在Eclipse下,您可以指定Ant应该运行的环境,并将其设置为JRE而不是JDK。

转到:运行->外部工具->外部工具配置。。。为项目选择Ant build.xml(如果有多个项目)激活选项卡“JRE”这里选择了“单独的JRE:jre6”。当我将其从1.6或1.7系列更改为JDK时,错误消失了。

其他回答

在我的案例中,问题出现在服务器运行时配置中:

检查JRE是否为所需版本:

该项目的版本为1.7,服务器JRE设置为1.6,在更改为正确的java版本后,它很好地启动了。

我也遇到过同样的问题,我在Linux中解决了这个问题。

检查您的$JAVA_HOME

需要JDK 1.8来编译/构建APK

安装Java JDK 1.8并更改Java_HOME

编辑~/.bashrc并将JDK 1.8路径添加为JAVA_HOME。

导出JAVA_HOME=/usr/lib/jvm/JAVA-8-oracle/jre/

和source~/.bashrc

关闭当前终端窗口/选项卡并运行$JAVA_HOME检查路径。

java.lang.UnsupportdClassVersionError发生是因为编译时JDK较高,而运行时JDK较低。

别担心,我解决了。

这实际上很简单——您需要使用相同的版本安装JRE和JDK。

JRE 6->JDK 6

JRE 7->JDK 7

等等

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

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

清理Maven项目毫无帮助。

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