Apache Ant 1.10.6 以降
jmod ファイルを実行可能イメージにアセンブルします。JDK の jlink ツールと同等です。
Java 9 以降が必要です。
| 属性 | 説明 | 必須 |
|---|---|---|
| destDir | 作成されたイメージのルートディレクトリ。 | はい |
| modulepath | イメージを作成するためにリンクする jmod ファイルのパスのようなシーケンス。 | ネストされた <modulepath> が存在する場合を除き、これらのいずれかが必要です。 |
| modulepathref | イメージを作成するためにリンクする jmod ファイルのパスのようなシーケンス。別の場所で定義されたパスへの 参照として指定されます。 | |
| modules | リンクされたイメージに配置するモジュールのコンマ区切りリスト。 | ネストされた <module> 要素が 1 つ以上存在する場合を除き、必須です。 |
| observableModules | リンク中にリンクツールに表示される「ユニバース」を構成する明示的なモジュールのコンマ区切りリスト。 | いいえ |
| launchers | name=module または name=module/mainclass の形式のコマンドのコンマ区切りリスト。 |
いいえ |
| locales | 含める追加のロケール、または複数のロケール名に一致するワイルドカードパターンのコンマ区切りリスト。jdk.localedata モジュールが必要です。 |
いいえ |
| excludeResources | ソース jmod から除外するリソースを指定するパターンのコンマ区切りリスト。各パターンは、標準の PathMatcher パターンか、1 行に 1 つのリソース名を持つテキストファイルを示す @filename のいずれかです。 |
いいえ |
| excludeFiles | リンクされたイメージから除外するファイルを指定するパターンのコンマ区切りリスト。各パターンは、標準の PathMatcher パターンか、1 行に 1 つのファイル名を持つテキストファイルを示す @filename のいずれかです。 |
いいえ |
| resourceOrder | リソース検索順序を指定するパターンのコンマ区切りリスト。各パターンは、標準の PathMatcher パターンか、1 行に 1 つのリソース名を持つテキストファイルを示す @filename のいずれかです。 |
いいえ |
| bindServices | 明示的にリンクされたモジュールで使用されるサービスプロバイダーインターフェースに対応するモジュールパスにあるサービスプロバイダーを、リンクされたイメージに含めるかどうかを示すブール値。 | いいえ、デフォルトは false です |
| ignoreSigning | 署名付き jar ファイルを許可するかどうかを示すブール値。(注:Java 11 の時点では、これは無視され、常に true として扱われます。) | いいえ、デフォルトは false です |
| includeHeaders | リンクされたイメージにヘッダーファイルを含めるかどうかを示すブール値。 | いいえ、デフォルトは true です |
| includeManPages | リンクされたイメージに man ページを含めるかどうかを示すブール値。 | いいえ、デフォルトは true です |
| includeNativeCommands | リンクされたイメージにネイティブ実行可能ファイルを含めるかどうかを示すブール値。 | いいえ、デフォルトは true です |
| debug | デバッグ情報を含めるかどうかを示すブール値。 | いいえ、デフォルトは true です |
| verboseLevel | 設定した場合、リンカーは詳細な出力を生成します。これは、指定された Ant ログレベル (DEBUG、VERBOSE、INFO、WARN、または ERR) でログに記録されます。 |
いいえ、デフォルトでは詳細な出力はありません |
| compress | リンクされたイメージの圧縮レベル。次のいずれか。
|
いいえ、デフォルトでは圧縮なし |
| endianness | リンクされたイメージのバイト順序。little または big である必要があります | いいえ、デフォルトはネイティブバイト順序 |
| checkDuplicateLegal | ブール値。異なるモジュールからの法的通知が同じ名前であるためにマージするときに、それらの内容が同一であることを確認します。 | いいえ、デフォルトは false です。つまり、同じ名前のライセンスファイルは同じコンテンツを持つと見なされ、チェックは行われません。 |
| vmType | イメージ内の Hotspot VM。次のいずれか。
|
いいえ、デフォルトは all です |
<link> には、次のネストされた要素を含めることができます
パスのような構造。イメージにリンクする jmod ファイルを指します。
リンクされたイメージに配置する単一のモジュールに名前を付けます。これは複数回指定できます。
属性
| 属性 | 説明 | 必須 |
|---|---|---|
| name | 追加するモジュールの名前。 | はい |
モジュールパス内のすべてのモジュールを考慮する代わりに、リンクプロセスに表示されるモジュールに名前を付けます。これは複数回指定できます。
属性
| 属性 | 説明 | 必須 |
|---|---|---|
| name | observable モジュールのリストに追加するモジュールの名前。 | はい |
特定のモジュールのメインクラスを実行する、リンクされたイメージに追加される実行可能ファイルを指定します。属性
| 属性 | 説明 | 必須 |
|---|---|---|
| name | ランチャーの名前。これは通常、実行可能ファイルの名前として使用されます。 | はい |
| module | 実行するモジュールの名前。 | はい |
| mainClass | 実行するモジュール内のエントリポイントクラスの名前。 | モジュール自体にメインクラスが定義されている場合を除き、必須です。 |
リンクされたイメージに含めるロケールを指定します。複数回指定できます。jdk.localedata モジュールが必要です。属性
| 属性 | 説明 | 必須 |
|---|---|---|
| name | ロケールの名前、または複数のロケール名に一致する のワイルドカードパターン。 |
はい |
リンクされたイメージの明示的なリソース検索順序。複数回指定できます。属性
| 属性 | 説明 | 必須 |
|---|---|---|
| pattern | リソースを照合するための 標準の PathMatcher パターン | これらのうちの 1 つ |
| listFile | 1 行に 1 つのリソース名 (パターンではありません) を含むテキストファイル |
タスクに resourceOrder 属性も存在する場合、そのパターンは、ネストされた <resourceOrder> 要素のパターンよりも前に発生するように扱われます。
リンクされたイメージツリーからファイルを除外します。複数回指定できます。属性
| 属性 | 説明 | 必須 |
|---|---|---|
| pattern | リソースを照合するための 標準の PathMatcher パターン | これらのうちの 1 つ |
| listFile | 1 行に 1 つのリソース名 (パターンではありません) を含むテキストファイル |
リンクされたイメージからファイルを除外します。複数回指定できます。属性
| 属性 | 説明 | 必須 |
|---|---|---|
| pattern | ファイルを照合するための 標準の PathMatcher パターン | これらのうちの 1 つ |
| listFile | 1 行に 1 つのファイル名 (パターンではありません) を含むテキストファイル |
イメージを圧縮する方法を記述します。属性
| 属性 | 説明 | 必須 |
|---|---|---|
| level | リンクされたイメージの圧縮レベル。次のいずれか。
|
はい |
| files | 圧縮するファイルに一致するパターンのコンマ区切りリスト。各パターンは、標準の PathMatcher パターンか、1 行に 1 つのファイル名を持つテキストファイルを示す @filename のいずれかです。 |
いいえ |
<compress> には、次の属性を持つネストされた <files> 要素を任意数含めることもできます
| 属性 | 説明 | 必須 |
|---|---|---|
| pattern | ファイルを照合するための 標準の PathMatcher パターン | これらのうちの 1 つ |
| listFile | 1 行に 1 つのファイル名 (パターンではありません) を含むテキストファイル |
イメージのリリース情報プロパティを置換、拡張、またはトリミングします。複数回指定できます。属性
| 属性 | 説明 | 必須 |
|---|---|---|
| file | 現在のものを完全に置き換える、新しいリリース情報プロパティを含む Java プロパティファイル。 | いいえ |
| delete | アプリケーションのリリース情報から削除するプロパティキーのコンマ区切りリスト | いいえ |
<releaseInfo> には、これらのネストされた要素を任意数含めることもできます
追加のリリース情報プロパティを指定します。属性
| 属性 | 説明 | 必須 |
|---|---|---|
| key | 追加する単一のプロパティのキー。 | file が指定されている場合を除き、必須です |
| value | 追加する単一のプロパティの値。 | |
| file | 追加する任意の数のプロパティを含む Java プロパティファイル。 | key と value が指定されている場合を除き、必須です |
| charset | プロパティファイルの文字セット。 | いいえ、デフォルトは java.util.Properties クラスに従い、ISO_8859_1 です。 |
アプリケーションのリリース情報から削除するプロパティキー。属性
| 属性 | 説明 | 必須 |
|---|---|---|
| key | 削除するプロパティのキー。 | はい |
<jmod destfile="MyApp.jmod" classpath="build/myapp.jar"/>
<link destDir="build/image" modulepath="MyApp.jmod"
modules="com.example.myapp"/>
これにより、イメージに bin/MyEditor スクリプトが表示されます
<jmod destfile="MyApp.jmod" classpath="build/myapp.jar"/>
<link destDir="build/image" modulepath="MyApp.jmod"
modules="com.example.myapp"
launchers="MyEditor=com.example.myapp/com.example.myapp.editors.EditorMain"/>
同じことですが、ネストされたランチャー要素を使用します
<jmod destfile="MyApp.jmod" classpath="build/myapp.jar"/>
<link destDir="build/image" modulepath="MyApp.jmod"
modules="com.example.myapp">
<launcher name="MyEditor" module="com.example.myapp"
mainClass="com.example.myapp.editors.EditorMain"/>
</link>
jdk.localedata モジュールからアプリケーションに必要なロケールのみを含めます
<jmod destfile="MyApp.jmod" classpath="build/myapp.jar"/>
<link destDir="build/image" modulepath="MyApp.jmod"
modules="com.example.myapp,jdk.localedata"
locales="zh,jp-*"/>
イメージ全体を圧縮します
<jmod destfile="MyApp.jmod" classpath="build/myapp.jar"/>
<link destDir="build/image" modulepath="MyApp.jmod"
modules="com.example.myapp,jdk.localedata"
compress="zip"/>
イメージ内の一部のファイルのみを圧縮します
<jmod destfile="MyApp.jmod" classpath="build/myapp.jar"/>
<link destDir="build/image" modulepath="MyApp.jmod"
modules="com.example.myapp,jdk.localedata">
<compress level="zip" files=".*\.xml"/>
</link>
別のプラットフォームのイメージを作成するには
jmod describe "$FOREIGN_JDK_HOME"/jmods/java.base.jmod | grep '^platform'
<jmod destfile="MyApp.jmod" classpath="build/myapp.jar" platform="windows-amd64"/>
<link destDir="build/image"
modulepath="MyApp.jmod;${foreign-jdk-home}/jmods"
modules="com.example.myapp"/>