首頁 Java java教程 如何解決自動產生的名稱包含保留關鍵字的 Java 9 模組依賴性問題?

如何解決自動產生的名稱包含保留關鍵字的 Java 9 模組依賴性問題?

Nov 28, 2024 pm 03:02 PM

How to Resolve Java 9 Module Dependency Issues with Auto-Generated Names Containing Reserved Keywords?

無法解決 Java 9 中自動產生名稱的模組相依性?

當與自動產生的模組存在依賴關係時,會出現此問題name 包含關鍵字“native”,該關鍵字在 Java 9 中保留。因此,無法將其作為依賴項添加到模組中

解決方案:

要解決此問題,可以考慮兩種主要方法:

  1. 新增自動模組名稱屬性:

    工件擁有者可以打包一個META-INF/MANIFEST.MF文件,其中包含指定 Automatic-Module-Name 屬性的工件。此屬性定義模組描述符要使用的模組名稱。透過將 Automatic-Module-Name 設定為有效名稱(不包括「native」),可以解決問題。

  2. 將模組聲明加入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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

2025年的前4個JavaScript框架:React,Angular,Vue,Svelte 2025年的前4個JavaScript框架:React,Angular,Vue,Svelte Mar 07, 2025 pm 06:09 PM

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

Java的類負載機制如何起作用,包括不同的類載荷及其委託模型? Java的類負載機制如何起作用,包括不同的類載荷及其委託模型? Mar 17, 2025 pm 05:35 PM

Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?

如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案? 如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案? Mar 17, 2025 pm 05:46 PM

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

Node.js 20:關鍵性能提升和新功能 Node.js 20:關鍵性能提升和新功能 Mar 07, 2025 pm 06:12 PM

Node.js 20:關鍵性能提升和新功能

如何在Java中實施功能編程技術? 如何在Java中實施功能編程技術? Mar 11, 2025 pm 05:51 PM

如何在Java中實施功能編程技術?

如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存? 如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存? Mar 17, 2025 pm 05:44 PM

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

Spring Boot Snakeyaml 2.0 CVE-2022-1471問題已修復 Spring Boot Snakeyaml 2.0 CVE-2022-1471問題已修復 Mar 07, 2025 pm 05:52 PM

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

2025年用Apache Kafka徹底改變數據管道 2025年用Apache Kafka徹底改變數據管道 Mar 07, 2025 pm 06:19 PM

2025年用Apache Kafka徹底改變數據管道

See all articles