jrecreateを探る

jrecreateの探索

1. EJDKの概要

EJDK(Embedded Java Development Kit)は、利用可能なすべての組み込みプラットフォームにバイナリを提供する問題を解決するためにOracleによって導入されました。 最新のEJDKはOracle’s site hereからダウンロードできます。

簡単に言うと、プラットフォーム固有のJREを作成するためのツールが含まれています。

2. 作成する

EJDKは、Windows用のjrecreate.batとUnix / Linuxプラットフォーム用のjrecreate.shを提供します。 このツールは、使用したいプラットフォーム用にカスタムJREをアセンブルするのに役立ち、以下に導入されました。

  • すべてのプラットフォームでOracleによるバイナリのリリースを最小限に抑える

  • 他のプラットフォーム用にカスタマイズされたJREを簡単に作成できるようにする

次の構文は、jrecreateコマンドを実行するために使用されます。 Unix / Linuxの場合:

$jrecreate.sh -

Windowsの場合:

$jrecreate.bat -

1回のJRE作成に複数のオプションを追加できることに注意してください。 それでは、ツールで利用できるいくつかのオプションを見てみましょう。

3. jrecreateのオプション

3.1. 先

destinationオプションは必須であり、ターゲットJREを作成するディレクトリを指定します。

$jrecreate.sh -d /SampleJRE

上記のコマンドを実行すると、指定された場所にデフォルトのJREが作成されます。 コマンドライン出力は次のようになります。

Building JRE using Options {
    ejdk-home: /installDir/ejdk1.8.0/bin/..
    dest: /SampleJRE
    target: linux_i586
    vm: all
    runtime: jre
    debug: false
    keep-debug-info: false
    no-compression: false
    dry-run: false
    verbose: false
    extension: []
}

Target JRE Size is 55,205 KB (on disk usage may be greater).
Embedded JRE created successfully

上記の結果から、ターゲットJREが指定された宛先ディレクトリに作成されていることがわかります。 他のすべてのオプションはデフォルト値を使用しています。

3.2. プロファイル

profileオプションは、ターゲットJREのサイズを管理するために使用されます。 プロファイルは、含まれるAPIの機能を定義します。 プロファイルオプションが指定されていない場合、ツールにはデフォルトですべてのJRE APIが含まれます。

$jrecreate.sh -d /SampleJRECompact1/ -p compact1

compact1プロファイルを持つJREが作成されます。 コマンドで-pの代わりに––profileを使用することもできます。 コマンドライン出力には、次の結果が表示されます。

Building JRE using Options {
    ejdk-home: /installDir/ejdk1.8.0/bin/..
    dest: /SampleJRECompact1
    target: linux_i586
    vm: minimal
    runtime: compact1 profile
    debug: false
    keep-debug-info: false
    no-compression: false
    dry-run: false
    verbose: false
    extension: []
}

Target JRE Size is 10,808 KB (on disk usage may be greater).
Embedded JRE created successfully

上記の結果では、runtimeオプションの値がcompact1であることに注意してください。 また、結果のJREのサイズが11MB未満であり、前の例の55MBから減少していることに注意してください。

プロファイル設定には、compact1compact2,compact3.の3つのオプションがあります。

3.3. JVMs

jvmオプションは、ユーザーのニーズに基づいて特定のJVMでターゲットJREをカスタマイズするために使用されます。 デフォルトでは、profilejvmの両方のオプションが指定されていない場合、使用可能なすべてのJVM(クライアント、サーバー、および最小)が含まれます。

$jrecreate.sh -d /SampleJREClientJVM/ --vm client

clientjvmを持つJREが作成されます。 コマンドライン出力には、次の結果が表示されます。

Building JRE using Options {
    ejdk-home: /installDir/ejdk1.8.0/bin/..
    dest: /SampleJREClientJVM
    target: linux_i586
    vm: Client
    runtime: jre
    debug: false
    keep-debug-info: false
    no-compression: false
    dry-run: false
    verbose: false
    extension: []
}

Target JRE Size is 46,217 KB (on disk usage may be greater).
Embedded JRE created successfully

上記の結果では、vmオプションの値がClientであることに注意してください。 このオプションを使用して、serverminimalなどの他のJVMを指定することもできます。

3.4. 拡張

extensionオプションは、ターゲットJREに許可されているさまざまな拡張機能を含めるために使用されます。 デフォルトでは、拡張機能は追加されていません。

$jrecreate.sh -d /SampleJRESunecExt/ -x sunec

extension sunec(Elliptic Curve Cryptographyのセキュリティプロバイダー)を持つJREが作成されます。 コマンドで-xの代わりに––extensionを使用することもできます。 コマンドライン出力には、次の結果が表示されます。

Building JRE using Options {
    ejdk-home: /installDir/ejdk1.8.0/bin/..
    dest: /SampleJRESunecExt
    target: linux_i586
    vm: all
    runtime: jre
    debug: false
    keep-debug-info: false
    no-compression: false
    dry-run: false
    verbose: false
    extension: [sunec]
}

Target JRE Size is 55,462 KB (on disk usage may be greater).
Embedded JRE created successfully

上記の結果では、extensionオプションの値がsunecであることに注意してください。 このオプションを使用すると、複数の拡張機能を追加できます。

3.5. 別のオプション

上記の主要なオプションの他に、jrecreateを使用すると、ユーザーはさらにいくつかのオプションを利用できます。

  • ––help:jrecreateツールのコマンドラインオプションの概要を表示します。

  • ––debug:デバッグをサポートするJREを作成します

  • ––keep-debug-info:クラスおよび符号なしJARファイルからのデバッグ情報を保持します

  • ––dry-run:実際にJREを作成せずにドライランを実行します

  • ––no-compression:非圧縮形式の署名されていないJARファイルを使用してJREを作成します

  • ––verbose:すべてのjrecreateコマンドの詳細出力を表示する。

4. 結論

このチュートリアルでは、EJDKの基本と、jrecreateツールを使用してプラットフォーム固有のJREを生成する方法を学習しました。