这几天在用jexcelapi,去下载了最新的jexcelapi:jexcelapi_2_6_11.zip,解压后把其中的jxl.jar添加到工程类库中。做了个测试测序,遇到以下错误:
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:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
Exception in thread "main"
我的eclipse使用的JDK版本是jdk5(前几天刚因项目需要由JDK6改成了JDK5),现在我改回使用JDK6,运行的测试程序OK。
以上问题在TOMCAT(使用JDK5的)中运行时候同样出现。
我下载的jexcelapi_2_6_11.zip是JDK6版本,但是下载地址:
http://sourceforge.net/projects/jexcelapi/files/ 中没有说明。后仔细看才发现画面最下面有:
2.6.9 (Java 1.4) Subscribe Folder view
jexcelapi_2_6_9_1.4.tar.gz 1.8 MiB Tue Nov 25 2008 17:07 6,743 Release Notes
jexcelapi_2_6_9_1.4.zip 2.3 MiB Tue Nov 25 2008 17:06 33,519 Release Notes
2.6.9 (Java 1.6)
由于项目原因,我目前使用的JDK只能是1.5,重新下载2.6.9 (Java 1.4) ,无论我的集成开发环境还是TOMCAT使用的JDK是1.5或1.6,都以上问题彻底解决。
分析总结如下:
1、JDK6编译的代码在低版本JDK上运行会出现java.lang.UnsupportedClassVersionError: Bad version number in .class file问题。反之没有问题。
2、去下载jexcelapi的时候要特别注意你下载的版本所支持的JDK版本号,最新版本的通常是支持的高版本JDK。也希望以后官方下载地址中能准确标识这方面的信息。
造成这种错误的原因是你的支持Tomcat运行的JDK版本与支持application运行的JDK版本不一致导致的.
那么如何解决上面的问题呢?
办法显而易见:把它们的JDK版本改成一致.
步骤如下:
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
相关推荐
### java.lang.UnsupportedClassVersionError: Bad version number in .class file 异常的解决办法 #### 一、问题概述 在使用MyEclipse进行Java开发的过程中,可能会遇到`java.lang.UnsupportedClassVersionError:...
在 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`异常。 - **解决方案**: - 检查当前使用的JDK版本是否与项目编译时所用的JDK版本一致。 - ...
另一方面,如果遇到`java.lang.UnsupportedClassVersionError: Bad version number in .class file`,这意味着编译的JDK版本与运行时的JDK版本不一致,你应该确保两者版本匹配,例如从1.6更换为1.5。 接下来,我们...
我花了一整天来解决这个问题:( jdk 1.7.0_51 上的 UTC+3 不正确使用 bash 运行 scraper-1.0-SNAPSHOT.jar 时遇到 java.lang.UnsupportedClassVersionError: Bad version number in .class file。 在 Windows 上使用...
在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。如果项目中还...
`java.lang.UnsupportedClassVersionError`: Bad version number in .class file** - **异常描述**:类文件版本与JVM版本不兼容。 - **原因分析**:编译时使用的JDK版本高于运行时的JDK版本。 - **解决方案**: -...
具体到文中提到的错误,“Bad version number in .class file”表明.class文件的版本号与当前环境中的JDK版本不匹配。 #### 解决方案 为了解决这一问题,我们需要确保编译环境和运行环境中的JDK版本一致。以下是...