1

我正在尝试使用来自 Eclipse 的捆绑 Maven-Ant 脚本构建项目并将其部署到 JBoss 部署文件夹,但它总是以 JBoss 记录以下内容结束:

nested throwable: (java.lang.UnsupportedClassVersionError: Bad version number in .class file)

本项目使用的软件如下:

  • 蚂蚁 1.6.5
  • Maven-Ant 任务插件 2.1.3
  • JBoss 4.0.5 正式版
  • JDK 1.4

在 Eclipse 中的 Window>Preferences 下,我将 JDK 添加到Java>Installed JREs列表中并将其设置为默认值,以防万一。在Project>Properties>Java Compiler我已将合规级别设置为 1.4 并且还使用其他合规设置时没有任何成功。

此外,JBoss 设置为使用完全相同的 JDK,即 Oracle 网站上的 1.4_03。奇怪的是 Eclipse 倾向于将其标识为 1.5 版。例如在 Java Compiler 页面上它说:

选择 1.4 合规性时,请确保安装并激活了兼容的 JRE(当前为 1.5)。

任何人都可以提供一些建议,我可能在哪里出错了?

提前致谢!

4

4 回答 4

1

这意味着 JBoss 中的某些类是用不兼容的(更新的)Javac 版本(具有更大的主编号)编译的,并且您的 JRE runung JBoss 拒绝加载它。

(违规类在stacktrace的某个地方)

唯一的解决方案是使用更新的 JDK 来运行 JBoss 并编译(1.4 已经很老了,不再支持 AFAIK)

于 2011-10-20T13:03:06.780 回答
1

我将开始查看您的 maven/ant 环境属性。

Eclipse中的jdk选择只在ide中使用。在您的 maven 属性或 ant 属性中设置的 java_home 和其他选项将用于编译和构建。

我还会检查您的 JAVA_HOME 环境变量,就好像它没有在属性文件中明确设置一样,它将从环境中获取。

于 2011-10-20T13:04:02.210 回答
1

您需要确保 Ant 脚本也使用正确的版本;您收到 1.5 警告有点令人不安——我发现很难相信 Eclipse 会错误地识别 JDK。另外,请记住 JDKJRE 不同,因此请仔细检查您的路径/等。

您还需要确保所有已部署的库以及 JBoss 的库都是使用 1.4 编译的——如果您的项目有依赖项,那么它们的库很可能不是在 1.4 编译的。

此外,说“J2EE JDK 1.4”有点令人困惑,因为 Java EE 和 Java SE 是两个不同的东西,你将无法在 JDK 1.4、AFAIK 下运行 J2EE 1.4。

于 2011-10-20T13:10:33.023 回答
0

我使用的 JDK 原来是错误的版本。我与之前的一位开发人员取得了联系,他说它绝对应该与 JDK 1.5 update 9 一起使用,这一切都不同了。我得到了那个模棱两可的错误信息。对不起,伙计们!

于 2011-10-26T06:24:08.927 回答