ant xjc任务与jdk 6配合使用
我使用xjc ant任务从xsd和wsdl生成java类,然后从这些生成的类生成一个jar。PFB我使用的代码ant xjc任务与jdk 6配合使用,ant,java-7,xjc,build.xml,jdk6,Ant,Java 7,Xjc,Build.xml,Jdk6,我使用xjc ant任务从xsd和wsdl生成java类,然后从这些生成的类生成一个jar。PFB我使用的代码 <!-- Below code generates java classes from wsdl --> <exec executable="xjc"> <arg value="-wsdl" /> <arg value="${wsdl}/mysample.wsdl
<!-- Below code generates java classes from wsdl -->
<exec executable="xjc">
<arg value="-wsdl" />
<arg value="${wsdl}/mysample.wsdl" />
<arg value="-d" />
<arg value="${myclasses}" />
<arg value="-d" />
<arg value="${myclasses}" />
<arg value="${xsdfile}/mysample.xsd" />
</exec>
<!-- Below code generates jar from java classes -->
<jar destfile="${jars}/mysample.jar" basedir="${myclasses}"/>
它在本地使用JDK7可以正常工作,但当我将它部署到拥有jdk6的服务器时,我得到了org.jboss.resteasy.spi.unhandledeException:java.lang.UnsupportedClassVersionError:com/my/webservices/mysampleweb
。有什么建议如何使这项工作
编辑:
我得到的主版本51比50新,这是该编译器支持的最高主版本。
从xsd生成的某些类出现错误。如何解决这个问题
我检查了我的ANT_主页、java版本和jre,一切正常。。但当我通过命令行使用ant构建时,仍然会出现上述错误。。任何建议如果您使用Java版本7构建,并尝试在Java 6上运行它-或者任何比您使用的Java版本更早的版本-您将得到此不受支持的ClassVersionError。编译后的Java字节码与新版本的JVM向前兼容,但不向后兼容。将Java7放在运行时环境中,或者使用JDK6进行编译 二进制兼容性 JavaSE7与JavaSE6是二进制兼容的,下面列出的不兼容除外。除了注意到的不兼容之外,使用JavaSE6编译器构建的类文件将在JavaSE7中正确运行 根据JVM规范,JavaSE7的类文件版本是51,因为JSR292引入了invokedynamic字节码。Java SE 7编译器生成的51版类文件不能在Java SE 6中使用
我得到的主要版本51比50新,这是该编译器支持的最高主要版本。从xsd生成的某些类出错。如何解决此问题??您是否在部署应用程序的服务器上遇到此错误?如果是这样,该机器需要运行Java 7,或者您需要使用Java 6编译应用程序。
-source
选项告诉javac要接受的源文件版本-target
告诉它生成与指定版本的JVM兼容的字节码,但这只有在您还指定-bootclasspath
和-extdirs
选项指向旧版本的Java引导类时才起作用。我认为OP的问题可能可以通过这种机制解决,但在开发和部署中使用相同的JDK是更好的做法(库兼容性等)。