必要なライブラリ rt.jar の制限によりクラスへのアクセスが制限されていますか? 質問する

必要なライブラリ rt.jar の制限によりクラスへのアクセスが制限されていますか? 質問する

IBM のWSDL2Javaによって作成されたJava 1.4コードをスタブを再作成せずにJava5でコンパイルしようとしたところ、 Eclipseでこのエラーが発生しました。生成されたスタブは、ランタイムが使用可能である限りコンパイルされるはずだと私は考えています(使用可能です)。
jars

Access restriction: The type QName is not accessible due to restriction on required library C:\Program Files\Java\jdk1.5.0_16\jre\lib\rt.jar

完全なクラス名はjavax.xml.namespace.QName

ここでは一体何が起こっているのでしょうか? これはソーセージから豚をリファクタリングしようとしているのでしょうか? スタブを再作成したほうがよいでしょうか?

ベストアンサー1

他にも有効な解決策があります。

  1. プロジェクト プロパティのビルド パス設定に移動します。
  2. JRE システム ライブラリを削除する
  3. 再度追加します。「ライブラリの追加」を選択し、JRE システム ライブラリを選択します。私の場合はデフォルトで動作しました。

これは、異なる jar ファイルに複数のクラスがあるために機能します。JRE ライブラリを削除して再度追加すると、適切なクラスが最初になります。根本的な解決策が必要な場合は、同じクラスの jar ファイルを除外するようにしてください。

私の場合は、javax.xml.soap.SOAPPart3つの異なる瓶にaxis-saaj-1.4.jarsaaj-api-1.3.jarそしてrt.jar

おすすめ記事