ホームページ >Java >&#&チュートリアル >Java 1.4 コードはスタブを再構築せずに Java 5 でコンパイルできますか?

Java 1.4 コードはスタブを再構築せずに Java 5 でコンパイルできますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-21 06:10:10918ブラウズ

Can Java 1.4 Code Compile on Java 5 Without Rebuilding Stubs?

必要なライブラリ rt.jar へのアクセス制限: スタブを再作成せずに Java 1.4 コードを Java 5 でコンパイルできますか?

コンパイルしようとしたときIBM の WSDL2Java によって Java 5 上で生成された Java 1.4 コード。スタブを使用すると、Eclipse でアクセス制限エラーが発生する場合があります。 「アクセス制限: 必要なライブラリ rt.jar の制限のため、タイプ QName にアクセスできません」というエラーは、必要なライブラリ (rt.jar) のアクセスが制限されていることを示します。

この問題は、スタブが原因で発生します。 Java 1.4 コード用に生成されたコードは、Java 5 で使用されるランタイムとは異なる Java 1.4 ランタイムのクラスを使用する場合があります。Java 5 に含まれる rt.jar ライブラリは、生成されたコードを正常にコンパイルするために必要なクラスが含まれていません。

スタブを再作成する代替解決策

この問題には、スタブを再作成する必要のない代替解決策があります。半券。手順は次のとおりです。

  1. プロジェクトのプロパティを開き、「ビルド パス」に移動します。
  2. 「JRE システム ライブラリ」を削除します。
  3. 「」を追加します。 JRE システム ライブラリ」を [ライブラリの追加] オプションから選択して戻します。

このソリューションは、複数のクラスが含まれているため機能します。プロジェクトには異なる jar ファイルが存在する可能性があります。 JRE システム ライブラリを削除して再度追加すると、正しいクラスが優先されるようになります。

根本的な解決策の確認

より根本的な解決策については、jar ファイルに次の内容が含まれていることを確認してください。同じクラスはプロジェクトから除外されます。これにより、異なるソースのクラス間の競合が防止され、JRE システム ライブラリの必要なクラスが確実に使用されます。

例:

javax.xml の場合.soap.SOAPPart は 3 つの jar ファイル (axis-saaj-1.4.jar、saaj-api-1.3.jar、およびrt.jar)、最初の 2 つの jar ファイルを除外すると、JRE システム ライブラリの SOAPPart クラスが使用されることが保証され、アクセス制限エラーが解決されます。

以上がJava 1.4 コードはスタブを再構築せずに Java 5 でコンパイルできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。