今天新建了一个基于jdk6的工程,在tomcat中部署之后,运行抛异常:java.lang.UnsupportedClassVersionError: Bad version number in .class file
(注:jdk5中,实现接口方法不能用@Override ,只有重写抽象方法可以用,所以系统属性中的jdk不能设为6.0或1.6)
造成这种过错的原由是支撑Tomcat运行的JDK版本与支撑application运行的JDK版本不一致导致的.
那么如何解决上面的问题呢?
措施显而易见:把它们的JDK版本改成一致.
处理方法如下:
1.Window ->Preferences ->Java ->compiler中的compiler compliance level对应的下拉菜单中选择JDK6.0版本(之前是5.0)
2.Window -> Preferences ->Java ->Installed JRES选择安装的jdk1.6,(之前是MyEclipse6.5,相当于5.0)(注意不要选jre)
3.Window -> Preferences ->MyEclipse -> Servers ->Tomcat -> Tomcat 6.x -->JDK中的Tomcat JDK name选择与步骤2相同
done
题外话,然后抛另一个异常:java.util.MissingResourceException: Can't find bundle for base name views, locale zh_CN
查到相关的资料说是资源文件没有放入source folders。
处理方式是:
在本工程属性的java build path的source中将资源resource添加进来
实践发现source里面的目录下的所以东西都会直接发布到WEB-INF/classes下,刚才没有包含资源文件那当然是无法完成编译的。
---------------------------------我是分割线,一下更新与11.7.16----------------------------------
由于我本机上装的MyEclipse是6.5的,版本比较低,前年和去年的web项目用的JDK5版本的,后来的项目用的都是JDK6版本的,所以经常被JDK5和6版本的问题改来改去,搞的很不爽,现在总结在一起,以后再不被这个问题绊倒了。
首先,Eclipse自带一套JDK,6.5的MyEclipse自带的是1.5版本的JDK。
那么如果项目是基于1.5的,那么就用这个自带的没问题。
这时,在Window ->Preferences ->Java ->compiler中的compiler compliance level默认的是5.0 如图[img]http://dl.iteye.com/upload/attachment/518646/c0f52e18-fb9e-36a8-a148-489a0c2809f9.jpg[/img]
同时Window ->Preferences ->Java ->Installed JREs的列表中只有MyEclipse一个JRE,这个JRE的版本和MyEclipse自带的JDK版本肯定是对应的,也就是1.5的。如图[img]http://dl.iteye.com/upload/attachment/518648/5d8a988e-54a2-3562-99a1-447c0ca322c2.jpg[/img]
好,以上这两个配置是针对MyEclipse的,决定了:你的项目准备部署在什么样的环境中?(其实很自然想到了,如果是JDK1.5写的程序,就运行在JDK和JRE1.5的环境中喽。所以可以认为项目属性和MyEclipse属性是相对应的)
那么对于这种JDK1.5的项目,其项目属性如何配置就很清楚了:
首先项目右键后Preferences ->Java compiler选择5.0 如图[img]http://dl.iteye.com/upload/attachment/518650/96700b60-c8ef-3375-abf1-7aee55f66898.jpg[/img]
然后,项目右键后Preferences ->Java Build Path ->Libraries列表中,MyEclipse6.5这个JDK应该是默认被加进来了。如图[img]http://dl.iteye.com/upload/attachment/518657/827f179e-8c6e-367c-92a2-005ca420f546.jpg[/img](如果没有被自动加进,那么可以参照下面的做法)
好了,以上就是对用JDK1.5的项目如何进行部署。在项目属性中设置的是项目的编译环境(使用JDK1.5),在MyEclipse的属性中设置的是项目的运行环境(使用相对应的JRE1.5)
下面来说说如何部署一个使用JDK1.6的项目,其实是差不多的,不过由于之前在这个上面被多次绊倒,今天说啥都要把这个步骤写清楚,让自己记住。
好,首先,要自己安装一套JDK1.6,如图[img]http://dl.iteye.com/upload/attachment/518659/478be1ba-4aa2-3a47-8ff5-3995630e43d9.jpg[/img],这是准备工作,因为本机上并没有JDK1.6,MyEclipse6.5又不自动提供,那总得安装一下吧。
然后和上面类似的事情开始了:
在Window ->Preferences ->Java ->compiler中的compiler compliance level选择6.0
在Window ->Preferences ->Java ->Installed JREs中点击Add,然后把刚安装的JDK1.6引入进来 如图[img]http://dl.iteye.com/upload/attachment/518661/57ec93e3-1dea-3904-809c-1f3949a8402c.jpg[/img]
然后在列表中选择JDK1.6 如图[img]http://dl.iteye.com/upload/attachment/518663/6cf12075-6156-371b-8c10-947bca4fe573.jpg[/img]
好了,这下MyEclipse的运行环境就改为1.6版本了。
接下来开始配置项目的属性:
首先项目右键后Preferences ->Java compiler选择6.0
然后,项目右键后Preferences ->Java Build Path ->Libraries列表中,先将MyEclipse6.5删除,然后点击Add Library..,双击JRE System Library,如图[img]http://dl.iteye.com/upload/attachment/518655/95cad0b3-b3ba-3875-96f3-5b06b0a7c635.jpg[/img]
选择JDK1.6,要是没有就Add喽,还是去找安装的JDK1.6,好啦,这就完成了。