首頁 > Java > java教程 > Java 9 模組描述符錯誤:如何處理自動產生的名稱,如「native」?

Java 9 模組描述符錯誤:如何處理自動產生的名稱,如「native」?

Barbara Streisand
發布: 2024-11-28 17:36:10
原創
785 人瀏覽過

Java 9 Module Descriptor Errors: How to Handle Auto-Generated Names like

Java 9 無法為自動產生的名稱派生模組描述符:探索解決方法

在Java 9 中,模組的引入提出了一個要求根據Java標識符規則定義模組名稱。然而,這項要求對某些自動產生的模組名稱提出了挑戰,特別是那些包含關鍵字「native」的模組名稱。

考慮Netty Epoll 傳輸依賴項的情況:

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-transport-native-epoll</artifactId>
    <version>${netty.version}</version>
    <classifier>${epoll.os}</classifier>
</dependency>
登入後複製

此依賴項的自動產生的模組名稱是“netty.transport.native.epoll”,由於“native”的存在,它違反了Java 標識符規則

要解決此問題,一種潛在的解決方法是修改工件的META-INF/MANIFEST.MF 檔案以包含 Automatic-Module-Name 屬性。此屬性定義模組名稱,因為它應該在模組描述符中使用:

<manifestEntries>
   <Automatic-Module-Name>netty.transport.epoll</Automatic-Module-Name>
</manifestEntries>
登入後複製

但是,此解決方案需要與工件所有者協作,使其成為一個不太直接的選擇。

An另一種方法是讓工件擁有者在其 JAR 中使用 module-info.java 包含模組宣告。此操作會觸發自下而上的遷移過程,其中假定不提供模組資訊的依賴項導出所有包。

以上是Java 9 模組描述符錯誤:如何處理自動產生的名稱,如「native」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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