【问题标题】:Exception while compiling: wrong version 50.0, should be 49.0编译时出现异常:错误的版本 50.0,应该是 49.0
【发布时间】:2009-11-19 20:16:33
【问题描述】:

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

【问题讨论】:

  • 感谢大家的回答和 cmets,我已经按照 oscar reyes 的建议解决了这个问题。

标签: java exception jxl


【解决方案1】:

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

您的编译器是 Java 5,这就是它不理解该格式的原因。

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

【讨论】:

  • 哦,这并不神秘 - eclipse 附带它自己的编译器,因此您甚至不需要 jdk。并且该编译器符合 Java6 :)
【解决方案2】:

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

Stephen Crawley 于 2007 年 11 月 30 日星期五 - 07:15 提交。

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

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

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

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

【讨论】:

  • 使用mvn clean,帮助我找到了mvn.bat文件,在我的例子中,它设置了自己的JAVA_HOME版本。
【解决方案3】:

在 eclipse 中检查你的类路径,并确保它与你在命令提示符下编译到的类路径相同,同时检查你的库导入

【讨论】:

  • 是的,我检查了所有内容,一切正常。但即使我得到了例外。
【解决方案4】:

这意味着,您已经使用 Java 6 编译了该类并尝试使用 Java 5 执行。

解决方案:

如果您使用ant,请在项目根目录执行以下步骤

  1. 蚂蚁清洁
  2. 蚂蚁部署

如果您使用 eclipse,只需 清理工作区(删除使用 Java6 编译的类文件) 并再次构建

【讨论】:

    【解决方案5】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-31
      • 1970-01-01
      • 2015-03-26
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多