Java - 由于UnsupportedClassVersionError,Ant构建和部署到JBoss失败

时间:2011-10-20 12:58:07

标签: java java-ee ant maven-ant-tasks jboss-4.0.x

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

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

此项目使用的软件如下:

  • Ant 1.6.5
  • Maven-Ant任务插件2.1.3
  • JBoss 4.0.5 GA
  • JDK 1.4

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

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

  

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

任何人都可以提出一些建议我可能出错吗?

提前致谢!

4 个答案:

答案 0 :(得分:1)

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

(违规类在堆栈跟踪的某处)

唯一的解决方案是使用更新的JDK来运行JBoss并进行编译(1.4很旧并且不再支持AFAIK)

答案 1 :(得分:1)

我会开始查看你的maven / ant环境属性。

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

我还会检查你的JAVA_HOME环境变量,好像它没有在属性文件中显式设置,它将从环境中获取。

答案 2 :(得分:1)

您需要确保Ant脚本也使用正确的版本;你得到1.5警告有点麻烦 - 我发现很难相信Eclipse会错误识别JDK。另外,请记住,JDK 与JRE相同,因此请仔细检查您的路径/等。

您还需要确保所有部署的库和JBoss的库都使用1.4进行编译 - 如果您的项目具有依赖性,则可能是它们的库未编译为1.4。< / p>

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

答案 3 :(得分:0)

我使用的JDK结果是错误的版本。我与之前的开发人员联系过,他说它肯定应该与JDK 1.5更新9一起使用,这一切都有所不同。我已经过了那个含糊不清的错误信息。对不起,伙计们!