ホームページ > Java > &#&チュートリアル > JDK 10 に切り替えた後、Eclipse が XML クラスを見つけられないのはなぜですか?

JDK 10 に切り替えた後、Eclipse が XML クラスを見つけられないのはなぜですか?

Linda Hamilton
リリース: 2024-11-28 11:13:18
オリジナル
597 人が閲覧しました

Why Can't Eclipse Find My XML Classes After Switching to JDK 10?

Eclipse で JDK 10 ビルド パスの切り替え後の XML クラスの検索に関する問題が発生しました

Eclipse 内で Maven プロジェクトで作業しているときに、ユーザーが問題に遭遇しました。プロジェクトの Java ビルド パスを JDK 10 に変更します。具体的には、Eclipse は次のようになりました。 javax.xml.xpath.XPath、org.w3c.dom.Document、org.xml.sax.SAXException などの XML 関連クラスが見つかりません。興味深いことに、この問題は Maven 依存関係 xml-apis-1.4.01.

の XML クラスのみに影響を及ぼしました。Eclipse ビルド プロセス中にこれらのクラスにアクセスできないにもかかわらず、Maven ビルドはエラーなしで実行されました。さらに、欠落しているとされるクラスの 1 つで Ctrl キーを押しながら左クリックすると、ユーザーは Eclipse エディタ内でそのクラスを見つけて開くことができました。したがって、問題は Eclipse ビルドに限定されているように見えました。

状況を修正するために、ユーザーは次のようなさまざまな解決策を試みました。

  • プロジェクトのクリーニング
  • 異なる Eclipse バージョン (Oxygen と Photon) を使用する
  • JDK 8 と JDK 8 の両方を使用するEclipse を使用した JDK 10
  • プロジェクトのコンパイラ コンプライアンス レベルの調整 (問題は依然として残っています)

これらの対策はどれも問題を解決しませんでした。

ルートの理解原因と解決策

根本的な問題これは、Java 1.8 から移行するプロジェクトには module-info.java ファイルが欠如しており、その結果「名前のないモジュール」内でコンパイルされるという仮定に基づいています。このモジュール内で、コードは、JRE システム ライブラリの「java.xml」など、監視可能な名前付きモジュールと名前なしモジュールを評価します。後者は、java.xml.xpath.

のようなパッケージへのアクセスを提供します。これと同時に、プロジェクトは xml-apis.java を依存関係として使用します。これにより、同一名のパッケージの代替セットが提供されます (例: java.xpath)。 xml.xpath)。両方のパッケージ セットが名前のないモジュールに存在するため、競合し、Java 1.8 の「一意の可視性」の要件に違反します。

競合を解決するには、次の 2 つの解決策が利用可能です:

  1. module-info.java ファイルをプロジェクトに追加し、どのモジュール (java.xml または xml.apis) を制御できるようにします。
  2. 監視可能なモジュールから java.xml を除外します。 Eclipse では、これは、[コンテンツ] タブの下にある [モジュール性の詳細] ダイアログを通じて実行できます。 java.xml を「明示的に含まれるモジュール」から「使用可能なモジュール」に移動することで、競合が回避されます。

以上がJDK 10 に切り替えた後、Eclipse が XML クラスを見つけられないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート