名前
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
- manページを除外します。
--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行に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
でランタイム・イメージを作成します。 このコマンドは、モジュール定義がディレクトリmlib
に含まれているモジュールcom.greetings
をリンクします。
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
次のコマンドは、デバッグ・シンボルの取り除かれている圧縮されたディレクトリ内に実行時イメージを作成し、圧縮を使用して領域を減らし、フランス語のロケール情報を含めます:
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
次の例では、mybuild
という名前のカスタム・ランタイム・イメージを作成します。このイメージには、java.naming
とjdk.crypto.cryptoki
のみが含まれ、他のプロバイダは含まれません。 これらの依存性は、モジュール・パスに存在する必要があります。
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