两个星期课程设计就要结束了,我们的编码实现也进入了最后阶段,我和另一个组员秉烛夜编,敲打着功能并测试…………
我们开发环境:Myeclipse 6.0.1
SQL Server 2005
Apache Tomcat 6.0.13
JDK 1.6.07
JRE 我的机器是1.6.07 , 同伴的是 1.5
CVS 版本控制2.5
——————————————————————————————————————————————————————
问题出现:
突然在测试的时候,我的tomcat出现异常,无法正常启动了,并且在windows的服务管理里也是无法启动,没办法,我只好重启机器了。
重启之后tomcat好用了,我就是用CVS版本控制器将我的更改提交到了服务器上面,然后我的同伴更新版本信息,在编译之后,运行时出现错误了:
Bad version number in .class file
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 java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:119)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:591)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:712)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:641)
at sun.applet.AppletPanel.run(AppletPanel.java:320)
at java.lang.Thread.run(Thread.java:595)
感到非常的郁闷,之前一直没有出现过这个错误啊!
——————————————————————————————————————————————————————
问题查找:
我们俩就开始在网上搜索这个异常的信息,知道这个异常是:编译成.class文件时使用的jre和运行时使用的不是一个版本。
有的网友讲:“该换的都换了,不行的话,最后吧tomcat重新安装了一下,把配置也从新配了一次,运行项目,成功了!”;
这不符合我们的风格,更重要的是,都晚上10点半了,那样的话我们就弄不完了,他那边搭建是服务器端,如果重装Myeclipse的话,我们的版本信息就又一次玩儿完。
我就把自己的Classes文件夹得内容覆盖到了他那里,结果异常变了,tomcat找不到编译文件,连主页都进不去。
——————————————————————————————————————————————————————
问题解决:
然后,我们在窗口->首选项(我的是中文包)中(如图1)
选择Java->编译器->已安装的JRE,(如图2)
按照你的选择,选中对应的JRE或者添加外部的JRE再选择即可,这是编译时使用的JRE。
然后Myeclipse->servers->Integrate sandbox(Myeclipse默认的Web容器)->Myeclipse tomcat->JDK(如图3)
最后Tomcat JDK name(这是Web 容器运行时使用的JRE)中选择和图2中一致的JRE即可,这个问题完美解决。
——————————————————————————————————————————————————————
感受:
这个问题花费了我俩两个小时,最初还以为CVS的问题,一会儿就可以解决,没想到花费这么长的时间,不过获益良多,对IDE有了更多的认识呢!希望可以为大家提供帮助,避免在这个问题上花费时间(别的IDE也有相应的设置,这里只是说了我用的Myeclipse)。