ホームページ > Java > &#&チュートリアル > 自動生成されたモジュール名を使用した Java 9 での「モジュール記述子を導出できません」エラーを解決する方法

自動生成されたモジュール名を使用した Java 9 での「モジュール記述子を導出できません」エラーを解決する方法

Susan Sarandon
リリース: 2024-11-25 03:05:18
オリジナル
1029 人が閲覧しました

How to Resolve

Java 9 で自動生成されたモジュール名のモジュール記述子を導出できません

Java 9 を使用している場合、試行時にエラーが発生する可能性があります「native」などの予約キーワードを含む自動生成されたモジュール名を持つ依存関係を追加します。このエラーは、Java 9 モジュール名が特定の命名規則に従う必要があり、「ネイティブ」が有効な Java 識別子ではないために発生します。

これを解決する 1 つの方法は、「META-INF」を追加して依存関係の JAR ファイルを変更することです。 「Automatic-Module-Name」属性を持つ /MANIFEST.MF」ファイル。この属性は、JAR が自動モジュールに変換されるときに使用されるモジュール名を指定します。

例:

<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>
ログイン後にコピー

あるいは、アーティファクト所有者は、「」を使用してモジュール宣言を JAR に追加できます。 module-info.java」ファイル。これらの宣言はモジュール名とその依存関係を明示的に定義するため、無効なモジュール名の問題に対処するのに役立ちます。ただし、このアプローチには、影響を受けるライブラリの所有者との協力が必要です。

Java モジュール システムの仕様に従って、モジュール名は次の命名規則に従う必要があります。

  • モジュール名は次の 1 つで構成されている必要があります。 「.」で区切られた 1 つ以上の Java 識別子トークン。
  • パッケージ名は、同じ命名規則に従っている場合、モジュール名として使用できますが、ドメイン名については例外があります。
  • ドメイン名に特殊文字またはキーワードが含まれている場合は、次のようにする必要があります。アンダースコアに変換されるか、アンダースコアが追加されます。
  • モジュール名では先頭の数字は使用できません。アンダースコアは、回避するためのプレフィックスとして使用できます。 this.

Java 9 でアンダースコアを使用するのは、キーワードとしてみなされるため注意が必要であることに注意してください。そのため、モジュール名またはパッケージ名として「ネイティブ」または「デフォルト」を使用することは避けてください。

以上が自動生成されたモジュール名を使用した Java 9 での「モジュール記述子を導出できません」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート