我正在尝试编译一个使用JDK 1.5.0_13和Maven 2.2.1的旧项目。
'jaxws-maven-plugin'失败了这条消息:
[INFO] Processing: com.xyzzy.sydemas.facade.SydemasFacadeImpl
[INFO] jaxws:wsgen args: [-keep, -s, C:\Development\www\workspace\sydemas_ws_sei\target\generated-sources\wsgen, -d, C:\Development\www\workspace\sydemas_ws_sei\target\classes, -verbose, -encoding, UTF-8, -extension, -wsdl, -r, C:\Development\www\workspace\sydemas_ws_sei\target\generated-sources\wsdl, com.xyzzy.sydemas.facade.SydemasFacadeImpl]
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
...few more lines here...
所有代码都是使用JDK 1.5构建的,JAVA_HOME
设置为JDK 1.5。
当我在列出的类文件中使用'javap'查看版本时,它显示49这是JDK 1.5编号。
原始POM使用旧的jaxws(org.codehaus.mojo版本1.10)。我也尝试了新的(来自org.jvnet.jax-ws-commons的2.3)它也失败了。
我已经搜遍了所有人,但找不到解决方案。
谢谢,Amir
答案 0 :(得分:0)
当您使用比使用更高版本的java编译的.class而不是尝试运行它的虚拟机时,通常会发生此错误。
可能是你的maven使用另一个版本的jdk。
编译器插件用于编译项目的源代码。 从3.0开始,默认编译器是javax.tools.JavaCompiler(如果你 正在使用java 1.6)并用于编译Java源代码。如果你想 要使用javac强制插件,您必须配置插件选项 forceJavacCompilerUse。
请检查this link.