1. EJDKの紹介

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

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

2. jrecreate

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

  • プラットフォームごとにOracleによるバイナリのリリースを最小限に抑える
  • 他のプラットフォーム用にカスタマイズされたJREを簡単に作成できるようにする

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

$jrecreate.sh -<option>/--<option> <argument-if-any>

そしてWindowsの場合:

$jrecreate.bat -<option>/--<option> <argument-if-any>

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の機能を定義します。 プロファイルオプションが指定されていない場合、ツールにはデフォルトですべてのJREAPIが含まれます。

$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から減少していることに注意してください。

プロファイル設定には、コンパクト1 コンパクト2、コンパクト3の3つのオプションがあります。

3.3. JVM

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

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

クライアントjvmを持つ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であることに注意してください。 このオプションを使用して、サーバー最小などの他のJVMを指定することもできます。

3.4. 拡大

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

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

拡張子sunec(楕円曲線暗号のセキュリティプロバイダー)を備えた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

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

3.5. その他のオプション

上記の主要なオプションの他に、 jrecreate は、さらにいくつかのオプションでユーザーを支援します。

  • -help :jrecreateツールのコマンドラインオプションの概要を表示します
  • -debug :デバッグをサポートするJREを作成します
  • -keep-debug-info :クラスおよび署名されていないJARファイルからのデバッグ情報を保持します
  • -ドライラン:実際にJREを作成せずにドライランを実行します
  • -no-compression :非圧縮形式の署名されていないJARファイルを使用してJREを作成します
  • -verbose :すべてのjrecreateコマンドの詳細出力を表示します

4. 結論

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