Eclipse 建置錯誤:在JDK 10 升級後定位XML 類別
一些使用者在切換其Java 建置路徑後遇到了令人困惑的問題Maven專案到JDK 10。 Eclipse建置無法找到與XML處理相關的類,例如javax.xml.xpath.XPath 和 org.w3c.dom.Document。有趣的是,從 Eclipse 建置的 Maven 運行時沒有錯誤。
根本原因:模組衝突
這個問題的根本原因在於專案缺少模組資訊.java 檔案。如果沒有此文件,專案將駐留在「未命名模組」中,並讀取所有可觀察的命名和未命名模組,包括JRE 中的「java.xml」和專案自己的類別路徑中的「xml. apis」。
唯一可見性要求
這種情況違反了Java語言規範的「唯一可見性」要求。每個限定類型名稱必須有一個唯一可見的套件。但是,由於「java.xml」和「xml.apis」都提供具有相同名稱的套件(例如 java.xml.xpath),因此會出現衝突。
潛在解決方案
要解決此問題,請考慮以下解決方案:
1.新增module-info.java 檔案
此檔案可讓您控制專案讀取哪些模組。透過指定requires java.xml;或需要xml.apis;,可以明確定義依賴關係,避免衝突。
2.避免Eclipse 中的衝突
在不添加module-info.java 檔案的情況下,您仍然可以透過使用「模組化詳細資料」對話框來防止Eclipse 中的衝突。將 java.base 以外的所有模組移至左側(“可用模組”),並選擇性地重新添加任何必要的模組。
儘管有這些解決方案,Eclipse 錯誤訊息仍然不準確,無法找出實際問題。該消息已改進,但根本問題仍然存在。
以上是為什麼我的 Eclipse Maven 專案升級到 JDK 10 後找不到 XML 類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!