3 アプリケーション要件のサポート
パッケージ化ツールでは、デフォルト引数、JVMオプション、ファイル・アソシエーション、複数のランチャおよび署名など、アプリケーションの要件をサポートしています。
デフォルトのコマンドライン引数の設定
アプリケーションがコマンドライン引数を受け入れる場合、--arguments
オプションを使用してデフォルト値を定義します。ユーザーは、アプリケーションを起動するときに、これらの値をオーバーライドできます。
デフォルトのコマンドライン引数でアプリケーションをパッケージ化した場合、ユーザーが引数を指定せずにアプリケーションを起動すると、これらの値はメイン・クラスに渡されます。jpackage
によって生成されたアプリケーション・イメージの/app
ディレクトリにあるapp-name.cfg
ファイルの[ArgOptions]
セクションには、定義されているデフォルトの引数が示されます。このファイルをチェックして、値が正しく定義されていることを確認できます。
次の例は、デフォルト引数の設定方法を示しています:
JVMオプションの設定
アプリケーションの起動時にJVMにオプションが渡されるようにする場合は、アプリケーションをパッケージ化するときに--java-options
オプションを使用します。ユーザーは、アプリケーションにJVMオプションを指定できません。
必要に応じてアプリケーションを実行するためのJVMを設定するには、ユーザーがアプリケーションを起動するときに渡すJVMオプションを定義します。$APPDIR
マクロを使用して、アプリケーションに含まれるリソースを参照します。アプリケーションをパッケージ化するときに、リソース・ファイルは入力ディレクトリに存在している必要があります。
jpackage
によって生成されたアプリケーション・イメージの/app
ディレクトリにあるapp-name.cfg
ファイルの[JavaOptions]セクションには、定義されているデフォルトの引数が示されます。このファイルをチェックして、値が正しく定義されていることを確認できます。
次の例では、JVMオプションをアプリケーションに渡す方法をいくつか示します:
ファイル・アソシエーションの設定
ユーザーが特定のタイプのファイルを開いたときにアプリケーションが起動されるようにする場合は、アプリケーションをパッケージ化するときに--file-associations
オプションを使用します。
アプリケーションで処理可能なファイルをユーザーが開いたときにアプリケーションが起動するようにするには、アプリケーションのインストール時に作成するファイル・アソシエーションを定義します。アソシエーションは、jpackage
に渡されるプロパティ・ファイルで定義されます。アソシエーションごとに、個別のファイルと--file-associations
オプションの個別のインスタンスが必要です。次のプロパティは、mime-type
またはextension
のいずれかを含む必要があるアソシエーションを定義します:
-
mime-type
- アプリケーションで処理できるファイルのMIMEタイプ。 -
extension
- アプリケーションで処理できるファイルのファイル拡張子。 -
icon
- アプリケーションで処理できるファイルのタイプに使用するアイコン。アプリケーションをパッケージ化するときに、アイコンは入力ディレクトリに存在している必要があります。アイコンを指定しない場合は、デフォルトのアイコンが使用されます。 -
description
- アソシエーションの簡単な説明。
ファイル・アソシエーションを設定するには、最初にプロパティ・ファイルを作成します。次の2つのファイルで、JavaScriptファイルとGroovyファイルのアソシエーションを設定します。
FAjavascript.properties:
mime-type=text/javascript
extension=js
description=JavaScript Source
FAgroovy.properties:
mime-type=text/x-groovy
extension=groovy
description=Groovy Source
次のコマンドでは、アプリケーションFADemoをパッケージ化し、作成したプロパティ・ファイルを使用してファイル・アソシエーションを設定します。ユーザーが.js
または.groovy
ファイルを開くと、FADemoが起動します。
jpackage --name FADemo --input FADemo \
--main-jar ScriptRunnerApplication.jar \
--file-associations FAjavascript.properties \
--file-associations FAgroovy.properties
ランチャの追加
アプリケーションを開始する方法が複数ある場合、--add-launcher
オプションを使用して、作成する追加のランチャ・ツールを記述します。
アプリケーションで引数に異なるデフォルト値を使用する場合、Windowsコンソールを使用してもしなくてもアプリケーションを実行できる場合、または複数のアプリケーションをパッケージ化してランタイムを共有する場合は、追加のランチャが必要になることがあります。オプションの形式は--add-launcher launcher-name=properties-file
です。ここで、launcher-nameは追加のランチャに使用される名前です。名前にスペーが含まれている場合は、引用符を使用します。
ランチャは、jpackage
に渡されるプロパティ・ファイルで定義されます。ランチャごとに、個別のファイルと--add-launcher
オプションの個別のインスタンスが必要です。次のプロパティはランチャを定義します。少なくとも1つのオプションを設定する必要があります:
-
module
- ランチャのメイン・クラスを含むモジュールの名前。メイン・モジュールがメイン・クラスを識別しない場合は、module=main-module/class
の形式で指定します。 -
main-jar
- ランチャのメイン・クラスを含むJARファイルの名前。 -
main-class
- メイン・クラスの名前。 -
arguments
- スペースで区切られたデフォルトの引数。引数にスペースが含まれる場合は、arguments=arg1 "arg 2" arg3
のように引数を引用符で囲みます -
app-version
- バージョン番号。 -
java-options
- スペースで区切られた、JVMに渡すオプション。引数にスペースが含まれる場合は、引用符で引数を囲みます。 -
icon
- 追加のランチャに使用されるアイコン -
win-console
-true
に設定すると、アプリケーションでコンソールが起動します。
追加のランチャを定義するには、最初にプロパティ・ファイルを作成します。次の例は、ランチャの設定方法を示しています:
アプリケーション・パッケージ(macOS)への署名
macOSで実行するアプリケーションの場合は、アプリケーションをパッケージ化するときに--mac-sign
およびサポート・オプションを使用します。署名済.dmg
パッケージ、.pkg
パッケージ、またはアプリケーションイメージから作成されたZIPファイルを認証できます。
署名をリクエストする--mac-sign
オプションに加え、--mac-package-signing-prefix
オプションで署名接頭辞を指定し、--mac-signing-key-user-name
オプションでキー・ユーザー名を指定する必要もあります。標準のキーチェーン以外のキーチェーンを使用する場合は、そのキーチェーン・ファイルに--mac-signing-keychain
オプションを指定する必要もあります。
次のコマンドでは、接頭辞xxxxxxおよび「Developer ID Application: developer.example.com」証明書を使用して、署名済の.dmg
パッケージが生成されます。文字列にスペースが含まれる場合は、引用符が必要です。
jpackage --name DynamicTreeDemo --input myApps --main-jar DynamicTree.jar \
--mac-sign --mac-package-signing-prefix xxxxxx \
--mac-signing-key-user-name developer.example.com
署名済.pkg
パッケージが生成されると、次のコマンドは接頭辞xxxxxxおよび「Developer ID Installer: developer.example.com」証明書を使用します。
jpackage --type pkg --name DynamicTreeDemo --input myApps \
--main-jar DynamicTree.jar --mac-sign --mac-package-signing-prefix xxxxxx \
--mac-signing-key-user-name developer.example.com