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


当前回答

首先,让我们正确掌握一些基本知识。。。

JRE是NetBeans/Eclipse/standalone中的一个组件,它将为您提供库、JVM、Java插件和Java web启动。注意,它不提供编译器或调试器。

JDK是JRE以及编译器和调试器的超集。

因此,当您将默认库作为JRE而不是JDK时,您将很容易导入内容,但它不会编译。

相反,将路径设置为JDK(我使用NetBeans,我使用NetBeans/etc/NetBeans.conf中的NetBeans.coff设置它们并更改路径)。

其他回答

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

显示的版本号描述了类文件兼容的JRE版本。

报告的主要数字如下:

Java SE 19 = 63,
Java SE 18 = 62,
Java SE 17 = 61,
Java SE 16 = 60, 
Java SE 15 = 59,
Java SE 14 = 58,
Java SE 13 = 57,
Java SE 12 = 56,
Java SE 11 = 55,
Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

(来源:维基百科)

要解决实际问题,您应该尝试使用较新版本的Java JRE运行Java代码,或者向Java编译器指定目标参数,以指示编译器创建与早期Java版本兼容的代码。

例如,为了生成与Java 1.4兼容的类文件,请使用以下命令行:

javac -target 1.4 HelloWorld.java

使用较新版本的Java编译器,您可能会收到关于未设置引导类路径的警告。有关此错误的更多信息,请参阅博客文章New-javac警告,该警告用于设置没有bootclasspath的旧源。

问题的答案是:

线程“main”java.lang.UnsupportdClassVersionError:edu/stvens/cs549/dhts/main/LocalContext:不支持的major.minor版本52.0

我也有同样的问题。对于那些在AWS ec2实例中遇到这种问题的人,他们不知怎么被重定向到了这个问题。我正在回答这些问题,并想分享我是如何做到的。我遇到了麻烦,因为AmazonEC2实例运行的是java 1.7版,可能我的项目与它不兼容,因为我使用的是Maven,它是为java 1.8预先配置的。所以我安装了新版本的java:

sudo yum-y安装java-1.8.0

然后,重要的一步是删除旧版本:

sudo yum remove java-1.7.0-openjdk

记得在安装新版本后删除它,否则它将继续使用相同的旧版本,我希望它能解决您的问题,我的情况就是这样。

当我回到Java6并尝试运行以前用Java7编译的类时,出现了这个问题。对我起作用的是Preferences>java>compiler-->将符合性级别设置为1.6,并关键地“配置项目设置”。。

我什么都试过了。重新安装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版本