私のプロジェクトでANT 1.6 /JAX-WS 2.0/Weblogic 11g
を使用しています。ビルドマシンがJDK7
になっている必要がありますが、デプロイメントマシン(weblogicを含む)はJDK6
にあります。 warファイルを作成中にエラーが発生するようになりました。JDK7とJAVACサポートのwsimportによるエラーJDK6 - 互換性の問題
ステップ - build.xml
ファイルにwarファイルを作成する前に:
1)デフォルトのJavaホームがJDK7
あるとして、ビルドマシンがJDK7
されるようになりましたので、私は-Xnocompile
を設定していますどこ私は)(JDK7
でwsimportのを呼び出していますので、ソースコードがありますデフォルトのJDK7
でコンパイルされません。私はJDK6
と互換性のビルドを作成する])時性[source ="6" target="6" fork="false"|"true"
(フォーク一方の両方の組み合わせを指定しているのjavacの実行中
2)。しかし、wsimportによって生成されたコードを読んでいるうちにエラーが発生します。
問題は私が今まで理解したことです - JDK7
からwsimportを実行し、プロパティをJDK6
に設定してコンパイルします。そのため、javac
の実行中にJDK7
の生成されたJavaファイルはサポートされません。
私のbuild.xml
ファイルにwsimport
コマンドで生成されたFYI、ADMIN.java
ファイルが似たようなエラーになります。
C:\MyProject\src\com\company\abc\xyz\delivery\ws\ADMIN.java:46: cannot find symbol
[javac] symbol : constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[])
[javac] location: class javax.xml.ws.Service
[javac] super(__getWsdlLocation(), ADMIN_QNAME, features);<br>
[javac]
は、あなたはそれ以上のバージョンを使用して下位バージョンを使用して、実行中のコンパイル、それを行うことはできません。コンパイルとランタイムには同じバージョンを使用します。リバースは主に可能で、下位バージョンでコンパイルし、上位バージョンで実行します。 – Rao
JAVA_HOME等jdk8/JDK7であると私はわずか1.6上でコードを実行したいが、コンパイル時には、私は、コードのみ1.6でコンパイル作るソース=「1.6」ターゲット=「1.6」のようにjavacのタグ内に値を入れています。 Java_homeは、インポートファイルがコンパイルできないJDK7です。コンパイル時にエラーを取得 - 今すぐJDK7を使用してwsimportのではなく、私は、ソースとターゲットから使用すべきJavaのバージョンを制御することができ、コンパイル(javacの)中に生成されたファイル。 – Aditya
あなたがランタイムバージョンについて特に気にしているのであれば、同じものをコンパイルするのはなぜですか? – Rao