ホームページ >Java >&#&チュートリアル >予約されたキーワードを含む自動生成された名前による Java 9 モジュールの依存関係の問題を解決するにはどうすればよいですか?

予約されたキーワードを含む自動生成された名前による Java 9 モジュールの依存関係の問題を解決するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-28 15:02:10387ブラウズ

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

Java 9 で自動生成された名前のモジュールの依存関係を解決できません?

この問題は、自動生成されたモジュールとの依存関係がある場合に発生します。名前には、Java 9 で予約されているキーワード「native」が含まれています。その結果、それを依存関係としてモジュールに追加することができなくなります。 descriptor.

解決策:

この問題を解決するには、次の 2 つの主なアプローチが考えられます:

  1. 追加自動モジュール名属性:

    アーティファクト所有者は次のことができます。 Automatic-Module-Name 属性を指定するアーティファクトを含む META-INF/MANIFEST.MF ファイルをパッケージ化します。この属性は、モジュール記述子によって使用されるモジュール名を定義します。 Automatic-Module-Name を有効な名前 (「ネイティブ」を除く) に設定することで、問題を解決できます。

  2. モジュール宣言を追加JAR:

    アーティファクト所有者は、次を使用してモジュール宣言を追加できます。 module-info.java を JAR ファイルに追加します。これにより、モジュール名を明示的に指定できるようになり、自動生成された名前が回避されます。ただし、このアプローチはライブラリとフレームワークがボトムアップで採用するため、段階的な移行が必要です。

モジュール記述子の仕様:

によるとJava 9 モジュール宣言仕様では、モジュール名はピリオドで区切られた 1 つ以上の Java 識別子で構成されます。これは、モジュール名が次の規則に従う必要があることを意味します:

  • 各コンポーネントは有効な Java 識別子 (キーワードを除く) である必要があります。
  • モジュール名に使用されるドメイン名に次のものが含まれている場合特殊文字またはキーワードを使用する場合は、アンダースコアに変換する必要があります。
  • コンポーネントが数字またはその他の文字で始まる場合、コンポーネントの最初の文字として使用することはできません。

Java 9 のアンダースコアに関する注意:

通常、アンダースコアはモジュール名の一部として使用できますが、重要です。 Java 9 ではアンダースコアがキーワードになっていることに注意してください。したがって、最初の文字としてアンダースコアを含む識別子は避ける必要があります。例:

int _native; // Works fine
int _; // Causes an error in Java 9

以上が予約されたキーワードを含む自動生成された名前による Java 9 モジュールの依存関係の問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。