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


当前回答

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

其他回答

如果在生成路径中添加了第二个项目,请确保它具有与第一个项目相同的编译器版本:财产->Java编译器->编译器符合性级别

今天,这个错误消息出现在Ubuntu 12.04.2 LTS(Precise Pangolin)上的Tomcat 7中:

/var/log/tomcat7/localhost.2014-04-08.日志:2014年4月8日上午9:00:55 org.apache.catalina.core.StandardContext过滤器开始严重:启动筛选器支柱2时出现异常java.lang.UnsupportdClassVersionError:controller/ReqAccept:不支持的major.minor版本51.0(无法加载类控制器.ReqAccept)

Struts应用程序是用Java7编译的。

结果是,有人使用“service tomcat[stop/start]”重新启动tomcat 7,

$ps-ef|grep javatomcat7 31783 1 32 20:13?00:00:03/usr/lib/jvm/defaultjava/bin/java。。。$/usr/lib/jvm/defaultjava/bin/java-版本java版本“1.6.0_27”

这会导致“不支持的major.minor版本51.0”错误。

当我们使用“/etc/init.d/tomcat7[stop/start]”重新启动Tomcat 7时,问题得到了解决。

$ps-ef|grep javatomcat7 31886 1 80 20:24?00:00:10/usr/local/java/jdk1.7.0_15/bin/java$/usr/local/java/jdk1.7.0_15/bin/java-版本java版本“1.7.0_15”

我也遇到了同样的问题,我在Mac上用这个解决方案解决了这个问题。我希望这对某人有所帮助。这是因为系统不知道更新版本的JDK,它仍然指向旧的JDK。

确保检查java的环境变量版本,可能只是java_HOME(JDK路径)和JRE_HOME(JRE路径)版本之间的差异导致了问题

您试图使用不支持编译代码的Java版本运行程序。所以基本上,您必须使用更高版本编译代码,并尝试使用更低版本运行代码。

正如你所得到的

Unsupported major.minor version 51.0

版本51.0对应于J2SE 7,您很可能用Java 7编译了代码,并尝试使用较低版本运行它。检查java版本显示的内容。它应该是Java 7版本。如果没有,请在PATH/JAVA_HOME中进行适当的更改。或者您可以使用试图运行代码的相同版本进行编译。如果配置令人困惑,您可以始终给出绝对路径/home/user/jdk1.7.0_11/bin/javac和/home/user/jdk1.70_11/bin/java。