今天新建了一个基于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 如图
同时Window ->Preferences ->Java ->Installed JREs的列表中只有MyEclipse一个JRE,这个JRE的版本和MyEclipse自带的JDK版本肯定是对应的,也就是1.5的。如图
好,以上这两个配置是针对MyEclipse的,决定了:你的项目准备部署在什么样的环境中?(其实很自然想到了,如果是JDK1.5写的程序,就运行在JDK和JRE1.5的环境中喽。所以可以认为项目属性和MyEclipse属性是相对应的)
那么对于这种JDK1.5的项目,其项目属性如何配置就很清楚了:
首先项目右键后Preferences ->Java compiler选择5.0 如图
然后,项目右键后Preferences ->Java Build Path ->Libraries列表中,MyEclipse6.5这个JDK应该是默认被加进来了。如图
(如果没有被自动加进,那么可以参照下面的做法)
好了,以上就是对用JDK1.5的项目如何进行部署。在项目属性中设置的是项目的编译环境(使用JDK1.5),在MyEclipse的属性中设置的是项目的运行环境(使用相对应的JRE1.5)
下面来说说如何部署一个使用JDK1.6的项目,其实是差不多的,不过由于之前在这个上面被多次绊倒,今天说啥都要把这个步骤写清楚,让自己记住。
好,首先,要自己安装一套JDK1.6,如图
,这是准备工作,因为本机上并没有JDK1.6,MyEclipse6.5又不自动提供,那总得安装一下吧。
然后和上面类似的事情开始了:
在Window ->Preferences ->Java ->compiler中的compiler compliance level选择6.0
在Window ->Preferences ->Java ->Installed JREs中点击Add,然后把刚安装的JDK1.6引入进来 如图
然后在列表中选择JDK1.6 如图
好了,这下MyEclipse的运行环境就改为1.6版本了。
接下来开始配置项目的属性:
首先项目右键后Preferences ->Java compiler选择6.0
然后,项目右键后Preferences ->Java Build Path ->Libraries列表中,先将MyEclipse6.5删除,然后点击Add Library..,双击JRE System Library,如图
选择JDK1.6,要是没有就Add喽,还是去找安装的JDK1.6,好啦,这就完成了。
- 大小: 5.7 KB
- 大小: 4.5 KB
- 大小: 5.4 KB
- 大小: 47.3 KB
- 大小: 3.9 KB
- 大小: 5.2 KB
- 大小: 77.8 KB
- 大小: 10.3 KB
分享到:
相关推荐
### java.lang.UnsupportedClassVersionError: Bad version number ...通过上述方法,可以有效地解决`java.lang.UnsupportedClassVersionError: Bad version number in .class file`异常问题,并确保项目能够平稳运行。
在 Tomcat 启动时,出现 "java.lang.UnsupportedClassVersionError: Bad version number in .class file" 的错误。这是因为 Java 编译版本和运行时版本不兼容所引起的。当我们编译 Java 代码时,编译器会生成 class ...
* java.lang.UnsupportedClassVersionError: Bad version number in .class file + 解决方案:检查 Java 的版本是否正确,是否存在版本不兼容的问题,尝试使用 compatible 的 Java 版本来解决问题。 四、JSP 异常...
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass...
`java.lang.UnsupportedClassVersionError`: Bad version number in .class file** - **异常描述**:类文件版本与JVM版本不兼容。 - **原因分析**:编译时使用的JDK版本高于运行时的JDK版本。 - **解决方案**: -...
我花了一整天来解决这个问题:( jdk 1.7.0_51 上的 UTC+3 不正确使用 bash 运行 scraper-1.0-SNAPSHOT.jar 时遇到 java.lang.UnsupportedClassVersionError: Bad version number in .class file。 在 Windows 上使用...
- **问题描述**:在部署或编译项目时遇到`java.lang.UnsupportedClassVersionError: Bad version number in .class file`异常。 - **解决方案**: - 检查当前使用的JDK版本是否与项目编译时所用的JDK版本一致。 - ...
另一方面,如果遇到`java.lang.UnsupportedClassVersionError: Bad version number in .class file`,这意味着编译的JDK版本与运行时的JDK版本不一致,你应该确保两者版本匹配,例如从1.6更换为1.5。 接下来,我们...
在Java应用部署过程中,如果遇到`java.lang.UnsupportedClassVersionError: Bad version number in .class file`这样的异常,通常是因为当前运行环境(如MyEclipse中使用的JDK版本)与编译时使用的JDK版本不一致。...
java.lang.UnsupportedClassVersionError: Bad version number in .class file ``` 这表明类文件的版本高于JVM所支持的版本。为了解决这个问题,需要确保开发和部署环境中使用的JDK版本至少为Java 1.6。如果项目中还...
具体到文中提到的错误,“Bad version number in .class file”表明.class文件的版本号与当前环境中的JDK版本不匹配。 #### 解决方案 为了解决这一问题,我们需要确保编译环境和运行环境中的JDK版本一致。以下是...