6 jpackageリソースのオーバーライド

生成されたパッケージの拡張カスタマイズは、プロパティおよびスクリプトのバックグラウンド・イメージやテンプレート・ファイルなど、jpackageで使用されているリソースをオーバーライドすることで可能になります。--resource-dirオプションは、ツールへのオーバーライドを指定するために使用されます。

アプリケーションをパッケージ化するときにjpackageが使用するデフォルト・リソースがニーズを満たさない場合は、ディレクトリを作成して、カスタマイズしたファイルを追加します。ファイルをオーバーライドする場合、カスタム・ファイルにはデフォルトに含まれるすべてのプロパティが含まれている必要があります。--resource-dirオプションを使用して、ディレクトリのパスをjpackageに渡します。このパスは、絶対パスまたは現在のディレクトリからの相対パスのいずれかで指定できます。

ノート:

アイコン、アプリケーション・バージョン、アプリケーションの説明、著作権などのリソースは、コマンドラインからオーバーライドできます。使用可能な場合は、コマンドライン・オプションの使用をお薦めします。

次のトピックでは、オーバーライドできるリソース、およびデフォルトの内容を確認する方法を説明します。

パッケージ化で使用されるリソース

パッケージ化ツールには、アプリケーションのパッケージの生成時に使用するデフォルトのテンプレートおよびその他のリソースが含まれます。

リソースはプラットフォームによって異なり、次の項で説明します。ほとんどの場合、コマンドライン・オプションでオーバーライドされるリソースは、リソース・ディレクトリのリソースより優先されます。コマンドラインでオーバーライドできないリソースをオーバーライドするには、カスタマイズしたファイルを、jpackageに渡すリソース・ディレクトリに追加します。「リソースの表示」で説明されている--verboseオプションを使用して、リソースごとにオーバーライド・ファイルの名前を検証します。

Linux (すべてのバージョン)

  • メインのランチャおよびその他のランチャのアイコン・ファイルlauncher.png。各ランチャには個別のアイコンがあります。このファイル名は、アプリケーションの名前またはランチャの名前と一致している必要があります。ランチャにアイコン・ファイルが提供されていない場合は、デフォルトのアイコンが使用されます。

  • デスクトップ・ショートカット・ファイル(launcher.desktop)は、メイン・ランチャおよびその他のランチャを対象としています。ファイル名は、アプリケーションの名前またはランチャの名前と一致している必要があります。

Linux DEB

  • 制御テンプレート、control。アプリケーションに関する情報を含むファイル。

  • インストール前スクリプト、preinst。アプリケーションがインストールされる前に実行されるスクリプト。

  • 削除前スクリプト、prerm。アプリケーションがアンインストールされる前に実行されるスクリプト。

  • インストール後スクリプト、postinst。インストールの完了後に実行されるスクリプト。

  • 削除後スクリプト、postrm。アプリケーションがアンインストールされた後に実行されるスクリプト。

  • 著作権ファイル、copyright。著作権およびライセンス情報を含むファイル。

Linux RPM

  • パッケージ化の仕様、package-name.spec。アプリケーションをパッケージ化する手順。

macOS (すべてのフォーマット)

  • メインのランチャおよびその他のランチャのアイコン・ファイルlauncher.icns。複数のファイルを指定できます。このファイル名は、アプリケーションの名前またはランチャの名前と一致している必要があります。ランチャにアイコン・ファイルが提供されていない場合は、デフォルトのアイコンが使用されます。

  • ランタイム・プロパティ・リスト、Runtime-Info.plist

  • 情報プロパティ・リスト、Info.plist

  • イメージ後スクリプト、application-name-post-image.sh。アプリケーション・イメージが作成された後、DMGまたはPKGインストーラが構築される前に実行されるカスタム・スクリプト。デフォルト・スクリプトはありません。

macOS DMG

  • DMG設定スクリプト、application-name-dmg-setup.scpt

  • アプリケーション・ライセンスのプロパティ・リスト、application-name-license.plist

  • バックグラウンド・ファイル、application-name-background.tiff

  • ドライブ・アイコン、application-name-volume.icns

macOS PKG

  • インストール前スクリプト、preinstall。アプリケーションがインストールされる前に実行されるスクリプト。

  • インストール後スクリプト、postinstall。インストールの完了後に実行されるスクリプト。

  • 明るいモードのバックグラウンド・イメージ、application-name-background.png

  • 暗いモードのバックグラウンド・イメージ、application-name-background-darkAqua.png

Windows

  • イメージ後スクリプト、application-name-post-image.wsf。アプリケーション・イメージが作成された後、MSIインストーラが.msiパッケージと.exeパッケージの両方用に構築される前に実行されるカスタム・スクリプト。デフォルト・スクリプトはありません。

  • メインWiXソース・ファイル、main.wxs

  • WiX変数のオーバーライドを含むWiXソース・ファイル、overrides.wxi。このファイルの値は、メインWiXファイルの値をオーバーライドします。

  • メインのランチャおよびその他のランチャのアイコン・ファイル、launcher.ico。複数のファイルを指定できます。このファイル名は、アプリケーションの名前またはランチャの名前と一致している必要があります。ランチャにアイコン・ファイルが提供されていない場合は、デフォルトのアイコンが使用されます。

  • ランチャ・プロパティ・ファイル、launcher.properties

リソースの表示

jpackage--verboseおよび--tempオプションを使用して、アプリケーションのパッケージ化に使用されるリソースに関する情報を取得できます。

jpackageリソースをオーバーライドする必要があるかどうかを判断するには、現在のデフォルトを確認します:
  • --verboseオプションを使用して、現在使用されている内容を確認します。

    --verboseオプションは、パッケージ作成プロセスに関する詳細情報を提供します。この情報には、リソース・ディレクトリに追加するファイルの名前など、リソースをカスタマイズするための指示も含まれています。

    次の例は、動的ツリー・アプリケーションをパッケージ化するためにWindowsで実行されたjpackageコマンドを示しており、次に--verboseオプションの出力のスニペットによって、使用されているデフォルトのリソースが示されています。WinLauncher.templateリソースをオーバーライドするには、DynamicTree.propertiesというファイルが必要です。main.wxsリソースをオーバーライドするには、main.wxsというファイルが必要です

    jpackage --input DynamicTree --main-jar DynamicTree.jar --verbose
    WARNING: Using incubator modules: jdk.incubator.jpackage
    Running [candle.exe, /?]
    Running [C:\Program Files (x86)\WiX Toolset v3.11\bin\candle.exe, /?]
    Windows Installer XML Toolset Compiler version 3.11.1.2318
    
       ...
    
    Using default package resource java48.ico [icon] (add DynamicTree.ico to the resource-dir to customize).
    Using default package resource WinLauncher.template [Template for creating executable properties file] 
    (add DynamicTree.properties to the resource-dir to customize).
    
       ...
    
    Using default package resource main.wxs [Main WiX project file] (add main.wxs to the resource-dir to 
    customize).
    Using default package resource overrides.wxi [Overrides WiX project file] (add overrides.wxi to the 
    resource-dir to customize).
    
       ...
    
  • --tempオプションを使用して、一時ファイルを確認のために保持します。

    --tempオプションは、パッケージ化プロセスで一時ファイルが書き込まれる新しいディレクトリまたは空のディレクトリの名前をjpackageに提供します。jpackageに渡されるパスは、絶対パスまたは現在のディレクトリからの相対パスのどちらでもかまいません。このオプションを使用した場合、ディレクトリはプロセス終了時に削除されません。

    このディレクトリを確認して、アプリケーションのパッケージ化に使用されたリソースを調べます。各ファイルを確認し、オーバーライドするプロパティおよび値を特定します。ファイルをオーバーライドする場合、カスタム・ファイルにはデフォルトに含まれるすべてのプロパティが含まれている必要があります。

    次の例は、Windowsで作成されるディレクトリを示しています。configディレクトリには、オーバーライドできるリソースが含まれています。

    jpackage --input DynamicTree --main-jar DynamicTree.jar \
       --temp DTtempfiles
    
    \DTtempfiles
       \config
          DynamicTree.ico
          DynamicTree.properties
          main.wxs
          MsiInstallerStrings_en.wxl
          MsiInstallerStrings_ja.wxl
          MsiInstallerStrings_zh.wxl
          overrides.wxi
       \images
       \wixobj