名前
jlink - 一連のモジュールとその依存性を作成し、カスタム・ランタイム・イメージに最適化
シノプシス
jlink
[options] --module-path
modulepath --add-modules
module [, module...]
- options
- スペースで区切ったコマンド行オプション。 「jlinkオプション」を参照してください。
- modulepath
jlink
ツールで参照可能なモジュールを検出するパス。 これらのモジュールは、モジュラJARファイル、JMODファイル、展開したモジュールのいずれかです。- module
- ランタイム・イメージに追加するモジュールの名前。
jlink
ツールにより、これらのモジュールとその推移的な依存性が追加されます。
説明
jlink
ツールでは、一連のモジュールをその推移的な依存性とともにリンクして、カスタム・ランタイム・イメージを作成します。
ノート:
開発者はカスタム・ランタイム・イメージの更新を担当します。
jlinkオプション
--add-modules
mod [,
mod...]- 指定のモジュールmodをルート・モジュールのデフォルト・セットに追加します。 ルート・モジュールのデフォルト・セットは空です。
--bind-services
- サービス・プロバイダ・モジュールとその依存性をリンクします。
-c ={0|1|2}
または--compress={0|1|2}
リソースの圧縮を有効にします。
0
: 圧縮なし1
: 定数文字列の共有2
: ZIP
--disable-plugin
pluginname- 指定されたプラグインを無効にします。 サポートされるプラグインのリストは、「jlinkのプラグイン」を参照してください。
--endian
{little
|big
}- 生成されるイメージのバイト順を指定します。 デフォルト値は、システムのアーキテクチャの形式です。
-h
または--help
- ヘルプ・メッセージを出力します。
--ignore-signing-information
- ランタイム・イメージで署名されたモジュール式JARがリンクされている場合、致命的なエラーを抑制します。 署名付きモジュラJARの署名関連ファイルは、ランタイム・イメージにコピーされません。
--launcher
command=
moduleまたは--launcher
command=
module/
main- モジュールのランチャ・コマンド名またはモジュールおよびメイン・クラスのコマンド名(モジュールとメイン・クラス名はスラッシュ(
/
)で区切ります)を指定します。 --limit-modules
mod [,
mod...]- 参照可能なモジュールの領域を、指定されたモジュール
mod
の推移閉包内にあるモジュールと、メイン・モジュール(存在する場合)、さらに--add-modules
オプションで指定されたその他のモジュールに制限します。 --list-plugins
- コマンド行オプションによってアクセスできる使用可能なプラグインをリストします(「jlinkのプラグイン」を参照)。
-p
または--module-path
modulepathモジュール・パスを指定します。
このオプションが指定されていない場合、デフォルトのモジュール・パスは
$JAVA_HOME/jmods
となります。 このディレクトリには、java.base
モジュールとその他の標準モジュールおよびJDKモジュールが格納されています。 このオプションが指定されていてもjava.base
モジュールを解決できない場合、jlink
コマンドは$JAVA_HOME/jmods
をモジュール・パスに追加します。--no-header-files
- ヘッダー・ファイルを除外します。
--no-man-pages
- マニュアル・ページを除外します。
--output
path- 生成されたランタイム・イメージのロケーションを指定します。
--save-opts
filename- 指定されたファイルに
jlink
のオプションを保存します。 --suggest-providers
[name,
...]- 指定されたサービス・タイプをモジュール・パスから実装するプロバイダを推奨します。
--version
- バージョン情報を出力します。
@
filename指定したファイルからオプションを読み込みます。
オプション・ファイルとは、オプションと、通常コマンド・プロンプトに入力する値が含まれるテキスト・ファイルです。 オプションは、1行または複数行に表示されます。 パス名には環境変数を指定しないでください。 行の先頭にハッシュ記号(
#
)を付けると、その行をコメント・アウトできます。jlink
コマンドのオプション・ファイルの例を次に示します。#Wed Dec 07 00:40:19 EST 2016 --module-path mlib --add-modules com.greetings --output greetingsapp
jlinkのプラグイン
ノート:
この項に記載されていないプラグインは、サポートされておらず、変更される可能性があります。
pattern-listを必要とするプラグイン・オプションの場合、値は要素のカンマ区切りのリストで、各要素では次の形式のいずれかを使用します。
- glob-pattern
glob:
glob-patternregex:
regex-pattern@
filename- filenameは、使用されるパターン(行ごとに1パターン)が含まれるファイルの名前です。
すべての使用可能なプラグインの詳細リストを表示するには、コマンドjlink --list-plugins
を実行します。
プラグインcompress
- オプション
--compress=
{0
|1
|2
}[:filter=
pattern-list]- 説明
出力イメージ内のすべてのリソースを圧縮します。
- レベル0: 圧縮なし
- レベル1: 定数文字列の共有
- レベル2: ZIP
含めるファイルのパターンをリストする場合、オプションのpattern-listフィルタを指定できます。
プラグインinclude-locales
- オプション
--include-locales=
langtag[,
langtag]*- 説明
langtagがBCP 47言語タグであるロケールのリストを組み込みます。 このオプションは、RFC 4647で定義されているロケール・マッチングをサポートします。 このオプションを使用する場合は、必ずモジュールjdk.localedataを追加します。
例:
--add-modules jdk.localedata --include-locales=en,ja,*-IN
プラグインorder-resources
- オプション
--order-resources=
pattern-list- 説明
指定されたパスを優先順位に従って並べ替えます。
@
filenameが指定されている場合、pattern-listの各行は、パスを順序付けるための完全一致である必要があります。例:
--order-resources=/module-info.class,@classlist,/java.base/java/lang/
プラグインstrip-debug
- オプション
--strip-debug
- 説明
- 出力イメージからデバッグ情報を取り除きます。
プラグインgenerate-cds-archive
- オプション
--generate-cds-archive
- 説明
- 実行時イメージがCDS機能をサポートしている場合は、CDSアーカイブを生成します。
jlinkの例
次のコマンドは、greetingsapp
ディレクトリにランタイム・イメージを作成します。 このコマンドは、モジュールcom.greetings
をリンクします(このモジュールの定義は、ディレクトリmlib
に格納されています)。
jlink --module-path mlib --add-modules com.greetings --output greetingsapp
次のコマンドは、ランタイム・イメージgreetingsapp
内のモジュールをリストします。
greetingsapp/bin/java --list-modules
com.greetings
java.base@11
java.logging@11
org.astro@1.0
次のコマンドは、ディレクトリcompressedrtでデバッグ記号が削除されたランタイム・イメージを作成し、圧縮を使用して領域を削減し、フランス語の言語ロケール情報を含めます。
jlink --add-modules jdk.localedata --strip-debug --compress=2 --include-locales=fr --output compressedrt
次の例では、ランタイム・イメージcompressedrt
(デバッグ記号が削除されておらず、圧縮を使用していない)のサイズをfr_rt
と比較します。
jlink --add-modules jdk.localedata --include-locales=fr --output fr_rt
du -sh ./compressedrt ./fr_rt
23M ./compressedrt
36M ./fr_rt
次の例では、java.security.Provider
を実装するプロバイダをリストします。
jlink --suggest-providers java.security.Provider
Suggested providers:
java.naming provides java.security.Provider used by java.base
java.security.jgss provides java.security.Provider used by java.base
java.security.sasl provides java.security.Provider used by java.base
java.smartcardio provides java.security.Provider used by java.base
java.xml.crypto provides java.security.Provider used by java.base
jdk.crypto.cryptoki provides java.security.Provider used by java.base
jdk.crypto.ec provides java.security.Provider used by java.base
jdk.crypto.mscapi provides java.security.Provider used by java.base
jdk.security.jgss provides java.security.Provider used by java.base
次の例では、java.naming
およびjdk.crypto.cryptoki
とその依存性のみが含まれ、他のプロバイダは含まれないmybuild
という名前のカスタム・ランタイム・イメージを作成します。 これらの依存性は、モジュール・パスに存在する必要があります。
jlink --add-modules java.naming,jdk.crypto.cryptoki --output mybuild
次のコマンドは、greetingsapp
という名前のランタイム・イメージを作成するコマンドと似ていますが、ルート・モジュールから解決されるモジュールとサービス・バインディングをリンクする点が異なります。Configuration.resolveAndBind
メソッドを参照してください。
jlink --module-path mlib --add-modules com.greetings --output greetingsapp --bind-services
次のコマンドは、このコマンドで作成されたランタイム・イメージgreetingsapp内のモジュールをリストします。
greetingsapp/bin/java --list-modules
com.greetings
java.base@11
java.compiler@11
java.datatransfer@11
java.desktop@11
java.logging@11
java.management@11
java.management.rmi@11
java.naming@11
java.prefs@11
java.rmi@11
java.security.jgss@11
java.security.sasl@11
java.smartcardio@11
java.xml@11
java.xml.crypto@11
jdk.accessibility@11
jdk.charsets@11
jdk.compiler@11
jdk.crypto.cryptoki@11
jdk.crypto.ec@11
jdk.crypto.mscapi@11
jdk.internal.opt@11
jdk.jartool@11
jdk.javadoc@11
jdk.jdeps@11
jdk.jfr@11
jdk.jlink@11
jdk.localedata@11
jdk.management@11
jdk.management.jfr@11
jdk.naming.dns@11
jdk.naming.rmi@11
jdk.security.auth@11
jdk.security.jgss@11
jdk.zipfs@11
org.astro@1.0