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 ログレベル (DEBUGVERBOSEINFOWARN、または ERR) でログに記録されます。 いいえ、デフォルトでは詳細な出力はありません
compress リンクされたイメージの圧縮レベル。次のいずれか。
0 または none
圧縮なし (デフォルト)
1 または strings
定数文字列の共有
2 または zip
zip 圧縮
いいえ、デフォルトでは圧縮なし
endianness リンクされたイメージのバイト順序。little または big である必要がありますいいえ、デフォルトはネイティブバイト順序
checkDuplicateLegal ブール値。異なるモジュールからの法的通知が同じ名前であるためにマージするときに、それらの内容が同一であることを確認します。 いいえ、デフォルトは false です。つまり、同じ名前のライセンスファイルは同じコンテンツを持つと見なされ、チェックは行われません。
vmType イメージ内の Hotspot VM。次のいずれか。
  • client
  • server
  • minimal
  • all
いいえ、デフォルトは all です

ネストされた要素として指定されたパラメータ

<link> には、次のネストされた要素を含めることができます

modulepath

パスのような構造。イメージにリンクする jmod ファイルを指します。

module

リンクされたイメージに配置する単一のモジュールに名前を付けます。これは複数回指定できます。

属性

属性 説明 必須
name 追加するモジュールの名前。 はい

observableModule

モジュールパス内のすべてのモジュールを考慮する代わりに、リンクプロセスに表示されるモジュールに名前を付けます。これは複数回指定できます。

属性

属性 説明 必須
name observable モジュールのリストに追加するモジュールの名前。 はい

launcher

特定のモジュールのメインクラスを実行する、リンクされたイメージに追加される実行可能ファイルを指定します。属性

属性 説明 必須
name ランチャーの名前。これは通常、実行可能ファイルの名前として使用されます。 はい
module 実行するモジュールの名前。 はい
mainClass 実行するモジュール内のエントリポイントクラスの名前。 モジュール自体にメインクラスが定義されている場合を除き、必須です。

locale

リンクされたイメージに含めるロケールを指定します。複数回指定できます。jdk.localedata モジュールが必要です。属性

属性 説明 必須
name ロケールの名前、または複数のロケール名に一致する * のワイルドカードパターン。 はい

resourceOrder

リンクされたイメージの明示的なリソース検索順序。複数回指定できます。属性

属性 説明 必須
pattern リソースを照合するための 標準の PathMatcher パターン これらのうちの 1 つ
listFile 1 行に 1 つのリソース名 (パターンではありません) を含むテキストファイル

タスクに resourceOrder 属性も存在する場合、そのパターンは、ネストされた <resourceOrder> 要素のパターンよりも前に発生するように扱われます。

excludeResources

リンクされたイメージツリーからファイルを除外します。複数回指定できます。属性

属性 説明 必須
pattern リソースを照合するための 標準の PathMatcher パターン これらのうちの 1 つ
listFile 1 行に 1 つのリソース名 (パターンではありません) を含むテキストファイル

excludeFiles

リンクされたイメージからファイルを除外します。複数回指定できます。属性

属性 説明 必須
pattern ファイルを照合するための 標準の PathMatcher パターン これらのうちの 1 つ
listFile 1 行に 1 つのファイル名 (パターンではありません) を含むテキストファイル

compress

イメージを圧縮する方法を記述します。属性

属性 説明 必須
level リンクされたイメージの圧縮レベル。次のいずれか。
0 または none
圧縮なし (デフォルト)
1 または strings
定数文字列の共有
2 または zip
zip 圧縮
はい
files 圧縮するファイルに一致するパターンのコンマ区切りリスト。各パターンは、標準の PathMatcher パターンか、1 行に 1 つのファイル名を持つテキストファイルを示す @filename のいずれかです。 いいえ

<compress> には、次の属性を持つネストされた <files> 要素を任意数含めることもできます

属性 説明 必須
pattern ファイルを照合するための 標準の PathMatcher パターン これらのうちの 1 つ
listFile 1 行に 1 つのファイル名 (パターンではありません) を含むテキストファイル

releaseInfo

イメージのリリース情報プロパティを置換、拡張、またはトリミングします。複数回指定できます。属性

属性 説明 必須
file 現在のものを完全に置き換える、新しいリリース情報プロパティを含む Java プロパティファイル。 いいえ
delete アプリケーションのリリース情報から削除するプロパティキーのコンマ区切りリストいいえ

<releaseInfo> には、これらのネストされた要素を任意数含めることもできます

add

追加のリリース情報プロパティを指定します。属性

属性 説明 必須
key 追加する単一のプロパティのキー。 file が指定されている場合を除き、必須です
value 追加する単一のプロパティの値。
file 追加する任意の数のプロパティを含む Java プロパティファイル。 keyvalue が指定されている場合を除き、必須です
charset プロパティファイルの文字セット。 いいえ、デフォルトは java.util.Properties クラスに従い、ISO_8859_1 です。
delete

アプリケーションのリリース情報から削除するプロパティキー。属性

属性 説明 必須
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>

クロスコンパイル

別のプラットフォームのイメージを作成するには