同一个项目中用不同版本jdk的问题??急急急

jun_422 2012-04-16 03:58:49
求高手解决:我做了一个项目用的jdk版本是1.6的,现在公司要求用1.5的版本,我安装了1.5版本后,也配置了环境变量,TomCat jdk,MyEclipse运行环境也改成了jdk 1.5版本的了,但是启动TomCat 还会报错:
java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1815)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at org.apache.catalina.startup.WebAnnotationSet.loadClassAnnotation(WebAnnotationSet.java:145)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationFilterAnnotations(WebAnnotationSet.java:84)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:57)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:297)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1064)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4238)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
...全文
488 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dracularking 2012-04-17
  • 打赏
  • 举报
回复
這相當於應該是eclipse造成的,因為你說之前jdk已經都調成1.5的了,但是如果eclipse的compiler compliance level沒有對應調整的話,在1.5下編譯的class version number可能仍是1.6的,而運行用tomcat jre已是1.5,因此會報bad version number
a312983516 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
因为你原先的.class文件都是在1.6版本的基础上编译的,
需要重新编译。。。
[/Quote]

顶下
jun_422 2012-04-16
  • 打赏
  • 举报
回复
谢谢各位了,可以了!
步骤如下(eclips与myeclips操作类似):
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版本,如果没有,可以自身添加.然后选中就可以了.
菖蒲老先生 2012-04-16
  • 打赏
  • 举报
回复
因为你原先的.class文件都是在1.6版本的基础上编译的,
需要重新编译。。。
桃园闲人 2012-04-16
  • 打赏
  • 举报
回复
在MyEclipse中将编译文件清理掉,然后再重新编译一次,步骤:
1.去掉自动编译,Project > BuildAutocatically
2.Project>Clean。
2.Project>Build All或 Build Project。

或者直接到项目根目录下删除build文件夹,然后再到MyEclipse中重新编译。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧