我正在使用JXL API处理应用程序,当我尝试使用eclipse IDE进行编译时,它正常工作,当我尝试在命令提示符下编译并显示以下异常时,它也没有编译。
Extract.java:6: cannot access jxl.read.biff.BiffException bad class file: C:\Program Files\Java\jdk1.5.0_01\jre\lib\ext\jxl.jar(jxl/read/biff/BiffException.class)
class file has wrong version 50.0, should be 49.0
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
import jxl.read.biff.BiffException;
^
1 error
编辑:
我能够使用JDK 1.6执行。由于JDK 1.6还必须与较低版本兼容,为什么它不支持在JDK 1.5中编译的类文件。
答案 0 :(得分:69)
您正在使用的库是使用Java 6编译的
您的编译器是Java 5,这就是它不理解该格式的原因。
要解决此问题,您必须获得1.5版本的库或将编译器升级到1.6我建议稍后。
答案 1 :(得分:3)
每http://www.jnode.org/node/2140 ...
Stephen Crawley于星期五,11/30/2007 - 07:15提交。
我怀疑你是在混合用不同版本的Java编译的代码。 Java 6.0使用类文件版本50.0,4,9.0使用49.0。
尝试执行“build clean”以删除所有现有的类文件,然后进行常规构建。
JNode仅使用Java 6.0开发。上次我试过,它没有使用Java 5.0(又名1.5)构建。 (构建JNode引导映像的程序存在问题。)
尝试在Eclipse中更改构建器。如果您使用的是3.4,则它是项目 - 属性 - Java编译器 - 启用项目特定设置 - 编译器符合性级别= 1.6 。你也需要安装JRE 1.6。
答案 2 :(得分:1)
检查eclipse中的类路径并确保它在命令提示符下编译的类路径相同,同时检查库导入
答案 3 :(得分:1)
这意味着,您已使用Java 6编译该类并尝试使用Java 5执行。
解决方案:
如果您使用ant ,请在项目根目录
上执行以下步骤如果您使用eclipse ,只需 清理工作区(删除使用Java6编译的类文件) 并再次建立
答案 4 :(得分:0)
这可能是你在IDE中指向最新版本的JDK但是当你在IDE之外构建你的程序时(可能还有maven)你的java_home是你IDE上的旧版本。