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


当前回答

许多答案都与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”

其他回答

在Eclipse的菜单窗口->首选项->Java->编译器中,还选中“配置项目特定设置”。

如果您仍然存在相同Java版本的错误:请尝试手动删除项目的构建文件夹。然后重新启动Eclipse。

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

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

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

别担心,我解决了。

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

JRE 6->JDK 6

JRE 7->JDK 7

等等

您已经用JDK7编译了Java类,并且正在尝试在JDK6上运行相同的类。

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