如何解決自動產生的名稱包含保留關鍵字的 Java 9 模組依賴性問題?
Nov 28, 2024 pm 03:02 PM無法解決 Java 9 中自動產生名稱的模組相依性?
當與自動產生的模組存在依賴關係時,會出現此問題name 包含關鍵字“native”,該關鍵字在 Java 9 中保留。因此,無法將其作為依賴項添加到模組中
解決方案:
要解決此問題,可以考慮兩種主要方法:
-
新增自動模組名稱屬性:
工件擁有者可以打包一個META-INF/MANIFEST.MF文件,其中包含指定 Automatic-Module-Name 屬性的工件。此屬性定義模組描述符要使用的模組名稱。透過將 Automatic-Module-Name 設定為有效名稱(不包括「native」),可以解決問題。
-
將模組聲明加入JAR:
工件擁有者可以使用以下方式新增模組聲明module-info.java
到他們的JAR 檔案。這允許他們明確指定模組名稱,從而避免自動產生的名稱。然而,這種方法需要逐步遷移,因為函式庫和框架自下而上地採用它。
模組描述符規範:
根據Java 9 模組聲明規範,模組名稱由一個或多個以句點分隔的Java 標識符組成。這表示模組名稱必須遵守以下規則:
- 每個元件必須是有效的 Java 識別碼(不包括關鍵字)。
- 如果用於模組名稱的網域包含特殊字元或關鍵字,必須轉換為底線。
- 如果組件以數字或其他不允許作為標識符第一個字元的字元開頭,則下劃線必須帶有前綴。
Java 9 中底線的注意事項:
雖然通常允許下劃線作為模組名稱的一部分,但請務必注意下劃線現在是Java 9 中的關鍵字。因此,必須避免包含下劃線作為初始字元的識別碼。例如:
int _native; // Works fine int _; // Causes an error in Java 9
以上是如何解決自動產生的名稱包含保留關鍵字的 Java 9 模組依賴性問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱門文章

熱門文章

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

2025年的前4個JavaScript框架:React,Angular,Vue,Svelte

如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?

如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?

Spring Boot Snakeyaml 2.0 CVE-2022-1471問題已修復
