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

时间:2009-11-19 20:16:33

标签: java exception jxl

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

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 ,请在项目根目录

上执行以下步骤
  1. ant clean
  2. ant deploy
  3. 如果您使用eclipse ,只需 清理工作区(删除使用Java6编译的类文件) 并再次建立

答案 4 :(得分:0)

这可能是你在IDE中指向最新版本的JDK但是当你在IDE之外构建你的程序时(可能还有maven)你的java_home是你IDE上的旧版本。