JDK 10 への移行後の XML クラスに関する Eclipse ビルド パスの問題
Maven プロジェクトを Java 8 から JDK 10 に移行する場合、Eclipse ユーザーjavax.xml.xpath などのクラスに関連するビルド エラーが発生する可能性があります。 org.w3c.dom.Document、および org.xml.sax.SAXException。この問題は、特にプロジェクトの Java ビルド パスを JDK 10 に切り替えるときに発生します。
根本原因
この問題は、プロジェクトにモジュール情報が欠如しているという事実から発生します。 java ファイル。この設定により、コードは「名前のないモジュール」でコンパイルされます。名前のないモジュールは、すべての監視可能なモジュールからパッケージをロードできます。この場合、Java ランタイム環境の java.xml や Maven 依存関係の xml-apis などのパッケージが含まれます。
ルール違反
この状況は、修飾された言語に独自の可視性を要求する Java 言語仕様 (JLS) §7.4.3 に違反します。タイプ名。この場合、java.xml と xml-apis のパッケージは、java.xml.xpath と関連クラスの競合する定義を提供します。
ソリューション
1 。 module-info.java ファイルを追加します
module-info.java ファイルを実装し、必要なモジュールを指定します。java.xml が必要です。または、可視性の問題を解決するには xml.apis; が必要です。
2.監視可能なモジュールから java.xml を除外する
監視可能なモジュールのリストから java.xml を除外することで、衝突を回避します。これは、Eclipse 内の「モジュール性の詳細」ダイアログを通じて実行できます。
意味と結論
javac は誤ったコードを拒否しない可能性がありますが、 JLS。 Eclipse のエラー メッセージングは、根本的な問題をより具体的に示すように改良されました。開発者は、このようなビルド エラーを防ぐために、Java のモジュール性ガイドラインを遵守し、モジュールの独自の可視性を確保することをお勧めします。
以上がJDK 10 に移行した後、XML クラスで Eclipse ビルド パス エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。