首頁 > Java > java教程 > 主體

如何使用自動產生的模組名稱解決 Java 9 中的「無法派生模組描述符」錯誤?

Susan Sarandon
發布: 2024-11-25 03:05:18
原創
980 人瀏覽過

How to Resolve

無法為Java 9 中自動產生的模組名稱派生模組描述符

使用Java 9 時,嘗試時可能會遇到錯誤使用包含保留關鍵字(例如“native”)的自動產生的模組名稱新增依賴項。出現此錯誤的原因是 Java 9 模組名稱必須遵循特定的命名約定,且「native」不是有效的 Java 識別碼。

解決此問題的一種方法是透過新增「META-INF」來修改依賴項的 JAR 檔案/MANIFEST.MF」文件,具有「Automatic-Module-Name」屬性。此屬性指定 JAR轉換為自動模組時要使用的模組名稱。文件。這些聲音明顯定義了模組名稱及其依賴項,這可以幫助解決無效模組名稱的問題。然而,這種方法需要與受影響的庫的所有者合作。

根據Java 模組系統規範,模組名稱應遵循以下命名約定:

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-transport-native-epoll</artifactId>
    <version>${netty.version}</version>
    <classifier>${epoll.os}</classifier>
</dependency>

// Add a manifest file to the dependency's JAR:
<manifestEntries>
    <Automatic-Module-Name>netty.transport.epoll</Automatic-Module-Name>
</manifestEntries>
登入後複製

模組名稱必須由一個組成或多個由「.」分隔的Java 識別碼

如果遵循相同的命名規則,套件名稱可以用作模組名稱,但網域有某些例外。

    如果網域包含特殊字元或關鍵字,則應該是轉換為底線或附加底線。
  • 模組名稱中不允許使用前導數字,可以使用下劃線作為前綴以避免this.
  • 請記住,在Java 9 中使用下劃線可能會很棘手,因為它們被視為關鍵字。因此,避免使用“native”或“default”作為模組名稱或套件名稱。

以上是如何使用自動產生的模組名稱解決 Java 9 中的「無法派生模組描述符」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板