编译时异常:错误的 50.0 版本,应为 49.0

2022-09-01 03:39:10

我正在使用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中编译的类文件。


答案 1

您使用的库是使用 Java 6 编译的

你的编译器是Java 5,这就是为什么它不理解这种格式。

要修复它,您必须获得1.5版本的库或将编译器升级到1.6,我建议稍后使用。


答案 2

http://www.jnode.org/node/2140...

由 Stephen Crawley 于 星期五, 11/30/2007 - 07:15 发表。

我怀疑你正在混合使用不同版本的Java编译的代码。类文件版本 50.0 由 Java 6.0 使用,49.0 版本由 Java 5.0 使用。

尝试执行“构建清理”以删除所有现有的类文件,然后进行常规构建。

JNode仅使用Java 6.0开发。上次我尝试时,它没有使用Java 5.0(又名1.5)构建。(这是构建 JNode 启动映像的程序的问题。

尝试在 Eclipse 中更改构建器。如果您使用的是 3.4,则为项目 - 属性 - Java 编译器 - 启用项目特定设置 - 编译器合规性级别 = 1.6。您还需要安装JRE 1.6。