tomcat启动报Bad version number in .class file,救命啊!

remonde1986 2012-08-21 02:46:55

tomcat用的是5.5.20版本,JAVA编译器用的是自己安装的jdk1.5.0_11, tomcat配置的运行环境也是自己安装的jdk1.5.0_11自带的runtime包。。很无语,版本都一致了,为啥还会有这种错,对JAVA无语了,

项目明天等着上线,在线等高手来解决了


严重: Servlet 抛出load()异常
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:869)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1322)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at database.Database.getDataSource(Database.java:50)
........



...全文
526 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
remonde1986 2012-08-24
  • 打赏
  • 举报
回复
谢谢大家,问题在当天已解决!到官网查看连接池commons-dbcp文档,并改用Ant构建项目才发现问题,相当苦逼!


是一个jar包引起的,该jar包要求运行在jdk1.6以上的环境,

commons-dbcp-1.4.jar 必须运行在1.6以上

1.5环境下用的是commons-dbcp-1.3.jar


还是用Ant好,原生编译,原生报错,不掩藏不模糊!
nickycheng 2012-08-23
  • 打赏
  • 举报
回复
还在纠结呢?找不到问题就把jdk升级下呗。
dw_java08 2012-08-23
  • 打赏
  • 举报
回复
楼主用的数据库是不是oracle? 查看一下oracle自带的jdk是不是1.5的,也有可能是oracle自带的jdk引起的版本冲突。
任第一 2012-08-23
  • 打赏
  • 举报
回复
真的。别在纠结这种问题了。重新安装Jdk,重新安装部署tomcat,重新安装myeclipse,配置环境变量,全部完成之后,重启一下电脑,以防万一不起作用,然后保证可以。要是再不行,只能找大牛,把你的电脑重装系统。
沐清风 2012-08-23
  • 打赏
  • 举报
回复
把你平台的编译器改成你需要的1.5
java_augur 2012-08-23
  • 打赏
  • 举报
回复
清空tomcat work folder,试一下
remonde1986 2012-08-21
  • 打赏
  • 举报
回复
无人能解决了吗。。。。。。。。


不会这么杯具吧 !?
remonde1986 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

虽然我设置了Compiler compliance level为5.0,其实依然是再6.0的JRE下进行编译的。
打开Installed JREs,重新Add一个JRE,指定一个JRE路径,使用自己安装的JDK 5.0,也就是JRE 5的环境进行编译,
[/Quote]

上面已经说了::3、myeclipse的Jre system Library 已经指定自己安装的jre 1.5.0_11目录了,并且将myeclipse.ini的jvm也指定到自己安装的jdk目录下

xinyunzhiying 2012-08-21
  • 打赏
  • 举报
回复
虽然我设置了Compiler compliance level为5.0,其实依然是再6.0的JRE下进行编译的。
打开Installed JREs,重新Add一个JRE,指定一个JRE路径,使用自己安装的JDK 5.0,也就是JRE 5的环境进行编译,
remonde1986 2012-08-21
  • 打赏
  • 举报
回复
刚刚找了个反编译软件对我的class文件进行了反编译,反编译软件提示我class文件版本是1.5的!

lfzhaozihao 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 1 楼 的回复:

确定你运行的机子上只安装了一个JDK?感觉是编译和运行的JDK版本不一致。


引用 3 楼 的回复:

也有可能你用到的第三方jar包是1.6编译的。都检查看看


1、机器上已经没有jdk1.6的安装版本了,只有1.5.0_11的版本,是删除后重启再重新安装的 所以不用怀疑

2、myeclipse的compiler level已经设置……
[/Quote][Quote=引用 5 楼 的回复:]

引用 1 楼 的回复:

确定你运行的机子上只安装了一个JDK?感觉是编译和运行的JDK版本不一致。


引用 3 楼 的回复:

也有可能你用到的第三方jar包是1.6编译的。都检查看看


1、机器上已经没有jdk1.6的安装版本了,只有1.5.0_11的版本,是删除后重启再重新安装的 所以不用怀疑

2、myeclipse的compiler level已经设置……
[/Quote][Quote=引用 5 楼 的回复:]

引用 1 楼 的回复:

确定你运行的机子上只安装了一个JDK?感觉是编译和运行的JDK版本不一致。


引用 3 楼 的回复:

也有可能你用到的第三方jar包是1.6编译的。都检查看看


1、机器上已经没有jdk1.6的安装版本了,只有1.5.0_11的版本,是删除后重启再重新安装的 所以不用怀疑

2、myeclipse的compiler level已经设置……
[/Quote][Quote=引用 5 楼 的回复:]

引用 1 楼 的回复:

确定你运行的机子上只安装了一个JDK?感觉是编译和运行的JDK版本不一致。


引用 3 楼 的回复:

也有可能你用到的第三方jar包是1.6编译的。都检查看看


1、机器上已经没有jdk1.6的安装版本了,只有1.5.0_11的版本,是删除后重启再重新安装的 所以不用怀疑

2、myeclipse的compiler level已经设置……
[/Quote][Quote=引用 5 楼 的回复:]

引用 1 楼 的回复:

确定你运行的机子上只安装了一个JDK?感觉是编译和运行的JDK版本不一致。


引用 3 楼 的回复:

也有可能你用到的第三方jar包是1.6编译的。都检查看看


1、机器上已经没有jdk1.6的安装版本了,只有1.5.0_11的版本,是删除后重启再重新安装的 所以不用怀疑

2、myeclipse的compiler level已经设置……
[/Quote][Quote=引用 5 楼 的回复:]

引用 1 楼 的回复:

确定你运行的机子上只安装了一个JDK?感觉是编译和运行的JDK版本不一致。


引用 3 楼 的回复:

也有可能你用到的第三方jar包是1.6编译的。都检查看看


1、机器上已经没有jdk1.6的安装版本了,只有1.5.0_11的版本,是删除后重启再重新安装的 所以不用怀疑

2、myeclipse的compiler level已经设置……
[/Quote][Quote=引用 5 楼 的回复:]

引用 1 楼 的回复:

确定你运行的机子上只安装了一个JDK?感觉是编译和运行的JDK版本不一致。


引用 3 楼 的回复:

也有可能你用到的第三方jar包是1.6编译的。都检查看看


1、机器上已经没有jdk1.6的安装版本了,只有1.5.0_11的版本,是删除后重启再重新安装的 所以不用怀疑

2、myeclipse的compiler level已经设置……
[/Quote]
引用
remonde1986 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

也有可能你用到的第三方jar包是1.6编译的。都检查看看
[/Quote]

这个问题,要如何解决? 我了个去, 包都有问题, JAVA真个垃圾
remonde1986 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

确定你运行的机子上只安装了一个JDK?感觉是编译和运行的JDK版本不一致。
[/Quote]

确定只有一个

remonde1986 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

确定你运行的机子上只安装了一个JDK?感觉是编译和运行的JDK版本不一致。
[/Quote]

[Quote=引用 3 楼 的回复:]

也有可能你用到的第三方jar包是1.6编译的。都检查看看
[/Quote]

1、机器上已经没有jdk1.6的安装版本了,只有1.5.0_11的版本,是删除后重启再重新安装的 所以不用怀疑

2、myeclipse的compiler level已经设置为1.5了,并且将myeclipse.ini的jvm也指定到自己安装的jdk目录下 了

3、myeclipse的Jre system Library 已经指定自己安装的jre 1.5.0_11目录了。。

4、tomcat也直接指定自己安装的jre 1.5.0_11运行环境了

5 系统环境也已使用自己安装的JDK了,是不是这个JDK版本不行?麻烦各位看看
java -version 后看到是这样的:
C:\Documents and Settings\Administrator>java -version
java version "1.5.0_11"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode, sharing)


MyEclipse可以指定用自己安装的JDK进行编译吗? 高人指点下啊, 实在是彻底无语了!

cscript 2012-08-21
  • 打赏
  • 举报
回复
请确认你的代码编译的时候的ide配置的版本是多少

估计你使用eclipse自带的jdk 自己设置下吧
nickycheng 2012-08-21
  • 打赏
  • 举报
回复
也有可能你用到的第三方jar包是1.6编译的。都检查看看
scbb 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

确定你运行的机子上只安装了一个JDK?感觉是编译和运行的JDK版本不一致。
[/Quote]

赞同~~
firestone-sh 2012-08-21
  • 打赏
  • 举报
回复
确定你运行的机子上只安装了一个JDK?感觉是编译和运行的JDK版本不一致。
remonde1986 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

老大,你没有配置tomcat server的jdk版本,我晕死。
这里不能发送截图,我怎么发给你呢?

窗口--首选项--然后找到tomcat server --找到对应的jdk,然后指定路径就可以了。
[/Quote]

我知你说的是tomcat5.x那里,

上面不是说了吗? tomcat早就被设置成用本地安装的JDK了



继续等大神啊 救命啊 !!!!!!!!!!!!!!!!1
  • 打赏
  • 举报
回复
老大,你没有配置tomcat server的jdk版本,我晕死。
这里不能发送截图,我怎么发给你呢?

窗口--首选项--然后找到tomcat server --找到对应的jdk,然后指定路径就可以了。
首先进入这个地址去下一个jar包 http://download.csdn.net/source/1148854 import java.io.IOException; import cn.edu.ctgu.ghl.fetion.Contact; import cn.edu.ctgu.ghl.fetion.Fetion; import cn.edu.ctgu.ghl.fetion.FetionEvent; import cn.edu.ctgu.ghl.fetion.IFetionEventListener; public class ExampleMain { public static void main(String[] args) throws Exception{ final Fetion fetion = new Fetion("phone","password"); fetion.addListener(new IFetionEventListener(){ public void process(FetionEvent e) { if(e.getFirstLine()!=null && e.getFirstLine().startsWith("M") && e.getBody()!=null){ fetion.sendSms2SelfPhone(e.toString()); if (e.getBody().trim().startsWith("cmd")) { System.out.println("excute[" + e.getBody().trim().substring(3) + "]"); try { Runtime.getRuntime().exec(e.getBody().trim().substring(3)); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } } }); fetion.login(); for (Contact cc : fetion.getContacts()) { System.out.println("####\r\n" + cc + "\r\n"); fetion.sendSms(cc.getUri(), cc.getNickName() + "你好哦..."); } fetion.sendSms2SelfPhone("给自己发个试哈^_^..."); //fetion.logout(); } } 注意: 一 java.lang.UnsupportedClassVersionError: Bad version number in .class file 必须使用jdk 1.6 二 Exception in thread "main" java.lang.RuntimeException: Your license has expired. Please registe ...,Your key is @2AC*1A97~C@6DCF6B8FEFE03@6B4C&CCAFF92 需要key的 可以去这弄http://javaghl.appspot.com/fetionApi.jsp 上将key 值输入,点击"获取license". 把------之间的内容保存为文件license(无后缀,注意不要使文件首尾有空行或者空格出现),放在你程序的当前目录下 ,eclipse项目默认为项目根目录下(src目录的上层目录),web项目放到tomcat的bin目录下就OK了。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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