我正在尝试使用来自Eclipse的Bundeled Maven-Ant脚本构建项目并将其部署到JBoss部署文件夹,但它始终以JBoss记录以下内容:
nested throwable: (java.lang.UnsupportedClassVersionError: Bad version number in .class file)
此项目使用的软件如下:
在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)。
任何人都可以提出一些建议我可能出错吗?
提前致谢!
答案 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一起使用,这一切都有所不同。我已经过了那个含糊不清的错误信息。对不起,伙计们!