1. ホーム
  2. java

[解決済み] 必須ライブラリrt.jarの制限により、クラスにアクセス制限がかかっている?

2022-02-12 12:14:16

質問

をコンパイルしようとしています。 Java 1.4 で作成されたコードを IBMの WSDL2Java について ジャバ5 スタブを再作成せずに、このエラーを エクリプス .
私は、生成されたスタブは、ランタイムさえあればコンパイルできるはずだと仮定しています。 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. に移動します。 ビルドパス をプロジェクトのプロパティで設定します。
  2. を削除します。 JRE システムライブラリ
  3. 追加し直す;選択 ライブラリの追加" を選択し JREシステムライブラリ . 私はデフォルトでうまくいきました。

これは、異なるjarファイルに複数のクラスがあるために動作します。JRE libを削除して入れ直すと、正しいクラスが最初に来るようになります。 根本的な解決を望むなら、同じクラスが含まれるjarファイルを除外することを確認してください。

私の場合は javax.xml.soap.SOAPPart を3つの異なるジャーで使用します。 axis-saaj-1.4.jar , saaj-api-1.3.jarrt.jar