Java9モジュールではないサードパーティのライブラリを使用するJava9モジュールがいくつかあります。これは単純なユーティリティjarです。
しかし、コンパイラーは、私のユーティリティーからパッケージを見つけることができないと不平を言います。
サードパーティのライブラリを使用できるようにするには、module-info.Java
で何をすればよいですか?
ライブラリを自動モジュールとして使用できます。自動モジュールは、モジュール記述子を持たないモジュールです(つまり、module-info.class
)。しかし、このモジュールを参照するにはどのような名前を使用する必要がありますか?自動モジュールの名前は、JAR名から派生します(このJARにAutomatic-Module-Name
属性が含まれている場合を除く)。完全なルールは非常に長いため(ModuleFinder.of
についてはJavadocを参照)、簡単にするために、バージョンから名前を削除し、英数字以外のすべての文字をドット(.
)に置き換える必要があります。
たとえば、foo-bar-1.2.3-SNAPSHOT.jar
を使用する場合は、module-info.Java
に次の行を追加する必要があります。
module <name> {
requires foo.bar;
}
簡単な手順で、サードパーティのjarを使用します(例:log4j-api-2.9.1.jar
以下)モジュールで: