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およびサポート・オプションを使用します。
                  
署名をリクエストする--mac-signオプションに加え、--mac-package-signing-prefixオプションで署名接頭辞を指定し、--mac-signing-key-user-nameオプションでキー・ユーザー名を指定する必要もあります。標準のキーチェーン以外のキーチェーンを使用する場合は、そのキーチェーン・ファイルに--mac-signing-keychainオプションを指定する必要もあります。
                     
次のコマンドは、接頭辞xxxxxxおよび"Developer ID Application: developer.example.com"証明書を使用してパッケージに署名することをリクエストします。文字列にスペースが含まれる場合は、引用符が必要です。
jpackage --name DynamicTreeDemo --input myApps --main-jar DynamicTree.jar \
   --mac-sign --mac-package-signing-prefix xxxxxx \
   --mac-signing-key-user-name developer.example.com