bad version number in class file 的解决办法

bad version number in class file 的解决方法

周末遇到一个问题,项目没有错误,在MyEclipse项目部署到tomcat后,tomcat启动时报错:

java.lang.UnsupportedClassVersionError: Bad version number in .class file 。。。

这个问题我原来遇到过,原因应该是编译java时生成的class文件,在运行时用到的JRE和class文件版本不一致造成的。

1 如果是一般的java程序:

可以在MyEclipse中修改JRE的路径和版本。在Window->Preferences中,打开如下位置,就可修改JRE:

http://hiphotos.baidu.com/edgar108/pic/item/0ac5b81291c1d112dc540159.jpg

修改完之后,最好重新编译一下,选Project->Clean... 选项,然后选择是所有的项目都要重新编译,还是只重新编译指定的项目,然后就应该没问题了。

今天一开始我也是这么做的,但是还是报错,在网上搜了一下之后,因为这是Web项目,程序当然是在Tomcat上运行的,所以我们这么改当然不行。

2 如果是Web 程序

就要修改Tomcat运行时的JDK环境了,如下图:

http://hiphotos.baidu.com/edgar108/pic/item/ea563c4b51889f1209f7efb0.jpg

把JDK的路径和之前Installed JRE的设置成一样的,这个问题就解决了!(虽然这里面设置的是JDK的路径,但是我觉得其实就是在设置JRE的路径,因为java程序运行的时候需要的是JRE,而不是JDK。我们装JDK的时候,一般都装了2个JRE,一个是JDK里面的JRE,还有一个和JDK平级的JRE,刚才我上网查了一下,这两个JRE的区别不大,大家也可以去查一下,每次都可以选择任何一个JRE,但是之后配置的吆喝前面的一致。)

如果不清楚JDK和JRE的关系的,可以上网查一下。

一般情况下,我们运行别人的程序可能会遇到这个问题。

再做个小小的延伸。。

这个项目编译并没有报错,如果我们导入别人的项目之后,出现了很多错误,那就是JDK版本的问题了,可以在这里修改:

http://hiphotos.baidu.com/edgar108/pic/item/2c10704e559f2e07aec3ab73.jpg

可以选择1.3,1.4,5.0,6.0.

步骤如下:
1.Window --> Preferences -->Java --> compiler中的compiler compliance level对应的下拉菜单中选择JDK版本.
2.Window --> Preferences -->MyEclipse --> Servers -->Tomcat --> Tomcat n.x -->JDK中的Tomcat JDK name下的下拉菜单中选择自身电脑上安装的JDK版本(必需与步骤1中的JDK版本一致).
如果还是没有解决,不用焦急,因为有些MyEclipse版本自带有JDK版本,所以也要将它改过来.
3.Window --> Preferences -->Java -->Installed JRES,然后在右边选择与步骤1和2版本一致的JDK版本,如果没有,可以自身添加.然后选中就可以了.