ホームページ >Java >&#&チュートリアル >Java 1.4 コードを Java 5 でコンパイルすると javax.xml.namespace.QName にアクセスできないのはなぜですか?

Java 1.4 コードを Java 5 でコンパイルすると javax.xml.namespace.QName にアクセスできないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-19 16:12:12731ブラウズ

Why is javax.xml.namespace.QName Inaccessible When Compiling Java 1.4 Code in Java 5?

rt.jar ライブラリの制限によりクラスのアクセシビリティが制限されています

Eclipse を使用して Java 5 で Java 1.4 コードをコンパイルすると、エラーが発生します。エラー メッセージには、rt.jar ライブラリの制限により javax.xml.namespace.QName 型にアクセスできないことが示されています。この問題は、IBM の WSDL2Java ツールによって生成されたスタブを操作するときによく発生します。

根本原因

このエラーは、Java 5 ランタイム環境の rt.jar ライブラリに次のものが含まれているために発生します。生成されたスタブで使用されるバージョンとは異なる、競合するバージョンの javax.xml.namespace.QName クラス。このバージョンの非互換性により、アクセス制限が発生します。

解決策

スタブを再作成する代わりに、次の解決策を試すことができます:

  1. -Eclipse のパッケージ エクスプローラーでプロジェクトをクリックし、選択しますプロパティ.
  2. Java ビルド パス > に移動します。 ライブラリ
  3. JRE システム ライブラリ エントリを削除します。
  4. ライブラリの追加 をクリックし、JRE システム ライブラリを選択します.
  5. デフォルトの JRE を選択し、クリックしますOK.

理由

JRE システム ライブラリを削除して再度追加すると、javax.xml.namespace の正しいバージョンが確保されます。 .QName が最初にロードされます。デフォルトでは、Eclipse は rt.jar ライブラリから競合するバージョンをロードする可能性があり、アクセス制限が発生します。

他のクラスと同様の競合が発生した場合は、競合するバージョンを含む特定の JAR ファイルをビルド パスから除外できます。これにより、必要なバージョンが最初にロードされるようになります。

以上がJava 1.4 コードを Java 5 でコンパイルすると javax.xml.namespace.QName にアクセスできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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