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

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

其他回答

许多答案都与IDE类似,如Eclipse。然而,这个问题与Notepad++的本地开发有关。

命名错误的核心原因是使用的Java运行时环境和使用的类库不匹配。以下描述的目标是在不进行任何额外安装的情况下进行编译。

1) 检查PATH变量中的定义。如果定义了:

C: \Program Files(x86)\Common Files\Oracle\Java\javapath

和/或

C: \ProgramData\Oracle\Java\javapath

这些路径链接到具有固定java版本的java/javac。您可以使用javac-version检查此文件夹中的版本。结果可能是:

java版本“1.8.0_231”

这意味着正在使用Java版本8。将此条目替换为%JAVA_HOME%\bin。如果JDK是手动安装的,请检查环境中是否设置了JAVA_HOME。如果没有,请在此处添加,例如:

JAVA_HOME=“C:\Program Files\JAVA\jdk1.7.0_80”

2) 我已经用gradle在命令行上构建了这个项目。在build.gradle中定义了:

android {
    buildToolsVersion "24.0.1"
    dependencies {
        compile 'com.android.support:design:23.0.1'
        compile 'com.android.support:support-v4:23.0.1'
        ...
    }
    ...
}

使用的构建工具dx文件比其他组件更新。因此,需要进行修改:

buildTools版本“23.0.1”

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

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

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

别担心,我解决了。

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

JRE 6->JDK 6

JRE 7->JDK 7

等等

我也遇到过同样的问题,我在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检查路径。