Maven jaxws插件失败,出现java.lang.UnsupportedClassVersionError:.class文件中的版本号错误

时间:2014-01-06 13:40:04

标签: maven wsdl jaxws-maven-plugin

我正在尝试编译一个使用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

1 个答案:

答案 0 :(得分:0)

当您使用比使用更高版本的java编译的.class而不是尝试运行它的虚拟机时,通常会发生此错误。

可能是你的maven使用另一个版本的jdk。

  

编译器插件用于编译项目的源代码。   从3.0开始,默认编译器是javax.tools.JavaCompiler(如果你   正在使用java 1.6)并用于编译Java源代码。如果你想   要使用javac强制插件,您必须配置插件选项   forceJavacCompilerUse。

请检查this link.