Java 调试ant UnsupportedClassVersionError
运行ant软件包后,我得到了以下异常跟踪,该软件包应该创建一个JBoss.ear软件包: 操作系统版本:Java 调试ant UnsupportedClassVersionError,java,exception,ant,jboss,Java,Exception,Ant,Jboss,运行ant软件包后,我得到了以下异常跟踪,该软件包应该创建一个JBoss.ear软件包: 操作系统版本: $ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 6.0.2 (squeeze) Release: 6.0.2 Codename: squeeze JBoss安装到/opt/JBoss-4.2.3.GA 有指针吗?根据Java
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 6.0.2 (squeeze)
Release: 6.0.2
Codename: squeeze
JBoss安装到/opt/JBoss-4.2.3.GA
有指针吗?根据Javadocs for java.lang.UnsupportedClassVersionError,此类的要点是:
当Java虚拟机
尝试读取类文件并
确定主修和辅修
文件中的版本号不正确
支持
这告诉我,有一个类的版本不受支持,通常将其解读为比Ant目前使用的版本更高的版本
所以……话虽如此,看到Ant脚本看起来像是在尝试使用EJB存根生成之类的东西,我想知道您正在尝试使用哪个版本的JavaEE,以及您正在使用哪个版本的JBoss。找出like EE 6不是JavaSE5,以及JRE JBoss在使用什么。如果您使用的JAR包级别高于1.5 build 22,即使是1.5 build 23,那么您可能会遇到此错误。确保所有JAR(甚至第三方JAR和库)以及用于生成JavaEE应用程序的非JAR均为1.5Build22或更低版本。这将有助于缓解问题。如果您不确定jar的版本,您可以使用Winzip打开它并查看其MANAFEST.MF文件。问题是ant是从Debian repo安装的,而其余java包:如jdk、jre、jboss等,则来自其他供应商Sun/Oracle、Apache等
我已经删除了Debian附带的ant,并用Apache的最新二进制文件替换了它。这解决了我的问题。我也面临同样的问题。 我在ant脚本中找到了解决方法。 在编译类的ant脚本中,我指定了build.target参数。 例如:
$ ant -version
Apache Ant version 1.8.0 compiled on March 11 2010
$ java -version
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_22-b03, mixed mode)
$ javac -version
javac 1.5.0_22
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 6.0.2 (squeeze)
Release: 6.0.2
Codename: squeeze
<target name="compile"><javac compiler="javac1.5" target="1.5" ....></target>