Java 9 で自動生成されたモジュール名のモジュール記述子を導出できません?
Java 9 では、 「native」などの予約キーワードを含む依存関係の自動生成モジュール名。これにより、「モジュールが見つかりません」などのエラーが発生する可能性があります。
問題の理解
Java 9 では、コードのカプセル化と分離を可能にするモジュールの概念が導入されました。モジュールには、Java 識別子の規則に従う必要がある一意の名前が付いています。ただし、「ネイティブ」などの特定のキーワードはモジュール名の一部として使用できません。
考えられる回避策
1.自動モジュール名マニフェスト エントリの使用
解決策の 1 つは、問題のある依存関係の JAR ファイルに「自動モジュール名」マニフェスト エントリを追加することです。このエントリは、アーティファクトのカスタム モジュール名を指定し、自動生成されたモジュール名をオーバーライドします。たとえば、Netty Epoll 依存関係のマニフェスト ファイルを変更して、
<Automatic-Module-Name>netty.transport.epoll</Automatic-Module-Name>
2 を含めることができます。 JAR へのモジュール宣言の追加
アーティファクト所有者は、「module-info.java」ファイルを使用してモジュール宣言を JAR に追加することもできます。これにより、モジュール名が明示的に定義され、Java 9 のモジュール システムとの互換性が確保されます。
代替命名規則
Java 仕様に従って、モジュール名は有効なパッケージ名である必要があります。依存関係のインターネット ドメイン名が有効なパッケージ名に変換されない場合に対応するために、次の規則が提案されています:
ただし、キーワードとしてのステータスのため、Java 9 ではモジュール名にアンダースコアを使用することは推奨されないことに注意してください。
以上がJava 9 で自動生成されたモジュール名の「モジュール記述子を導出できません」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。