0

Maven 2.2.1 で JDK 1.5.0_13 を使用する古いプロジェクトをコンパイルしようとしています。

「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 でビルドされ、JDK 1.5 にJAVA_HOME設定されています。リストされたクラスファイルで「javap」を使用してバージョンを確認すると、JDK 1.5 番号である 49 が表示されます。

元の POM は古い jaxws (org.codehaus.mojo のバージョン 1.10) を使用していました。新しいもの (org.jvnet.jax-ws-commons の 2.3) も試しましたが、失敗しました。

私はすべてを検索しましたが、解決策を見つけることができませんでした。

ありがとう、アミール

4

1 に答える 1

0

このエラーは通常、実行しようとしている仮想マシンよりも新しいバージョンの Java でコンパイルされた .class がある場合に発生します。

あなたのMavenが別のバージョンのjdkを使用している可能性があります。

コンパイラ プラグインは、プロジェクトのソースをコンパイルするために使用されます。3.0 以降、デフォルトのコンパイラは javax.tools.JavaCompiler (Java 1.6 を使用している場合) であり、Java ソースのコンパイルに使用されます。javac を使用してプラグインを強制する場合は、プラグイン オプション forceJavacCompilerUse を構成する必要があります。

このリンクを確認してください。

于 2014-01-06T19:30:47.290 に答える