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


当前回答

我什么都试过了。重新安装Tomcat终于奏效了。以下是我在重新安装之前检查的内容。

确保你的环境变量看起来像这样。

$ echo $JAVA_HOME
C:\Program Files\Java\jdk1.7.0_51\
$ echo $JRE_HOME
C:\Program Files\Java\jdk1.7.0_51\jre\bin

确保Eclipse正在使用与您设置JAVA_HOME相同的jre(如果未设置JAVA_HHOME,则将查看jre_HOME)。窗口>首选项>Java>已安装的JRE(选中的是默认项)

如果您对tomcat文件进行了任何更改,特别是catalina.bat或startup.bat,那么您可能会告诉tomcat查看不同于设置为java_HOME C:\Program files(x86)\Apache\Apache-tomcat-7.0.26\bin的java版本

其他回答

如果有人在使用Gradle,请将其放入build.Gradle

java {
    sourceCompatibility = JavaVersion.VERSION_1_7
    targetCompatibility = JavaVersion.VERSION_1_7
}

在上述情况下,我们告诉编译器使字节码与版本java7(我希望在其中运行类的java版本)兼容。

安装JDK 7.0.55并将Java for Eclipse设置为JDK7.0.55。通过在构建路径JDK 7.0.55上配置,使用JDK 7.0.5 5构建项目。通过菜单Windows->Preferences->Java->compiler-choose 1.7在Eclipse for JDK 7.0.55中设置编译器。

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

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

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