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


当前回答

基于此。。。

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。

其他回答

在Eclipse中,我只需进入菜单命令Window->Preferences->Java->Compiler,然后将“Compiler compliance level”设置为1.6。

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

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

我在Grails项目的SpringSourceTool(STS)IDE中也遇到了同样的问题。我检查了已安装的Java版本和项目Java版本为1.7。*。后来我发现在GGTS.ini文件中,Java版本设置为1.6:

解决方案:

-Dosgi.requiredJavaVersion=1.6更改为-Dosgi.requiredJavaVersion=1.7在-vmargs之前添加以下两行-虚拟机jdk1.7.0_21/jre/lib/amd64/server/libjvm.so

问题已解决。编码愉快。

别担心,我解决了。

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

JRE 6->JDK 6

JRE 7->JDK 7

等等

此错误表示您正在尝试加载一个Java“类”文件,该文件是用比您安装的Java版本更高的版本编译的。

例如,您的.class文件可能是为JDK7编译的,您正在尝试使用JDK6运行它。

因此,解决方案是:

升级Java运行时或如果有源代码,请使用本地Java编译器(如果有)重新编译类。javac文件名.java

对于开发人员来说,如果另一个开发人员签入了.class文件,并且他们得到了比您更新的java版本,则可能会发生这种情况!