自分のアプリケーションをカスタマイズする(Windows)

自分の Wrapper をカスタマイズする

対応バージョン :3.3.7
対応エディション :プロフェッショナル版スタンダード版コミュニティー版 (未対応)
対応プラットフォーム :WindowsMac OSX (未対応)Linux (未対応)IBM AIX (未対応)FreeBSD (未対応)HP-UX (未対応)Solaris (未対応)IBM z/OS (未対応)IBM z/Linux (未対応)

Wrapper バージョン 3.3.7 のリリースで、Wrapper は、リソースのいくつかを変更したり、Windows 上で外観をカスタマイズしたり、などの機能提供を開始しました。

Wrapper バイナリのコンソールレス版「wrapperW.exe」をカスタマイズすると、新しいバイナリーのバージョン(例えば、MyApp.exe)が作成されます。そのカスタマイズされたバイナリは、「--customize」 コマンドで指定された新しいリソースを含みます。 その結果となるバイナリはロックされ、もはやカスタマイズはできなくなります。

新しいカスタマイズされたバイナリ(例:MyApp.exe)を作成するとき、次の引数を結合できます。 引数「--target {target.exe}」は、常に必要です。

全てのファイル名のパスが、呼び出し元への相対的な配置場所である必要はなく、 Wrapper バイナリの配置場所への相対であることに注意してください。 例えば、次のコマンドでは、「wrapperW.exe」 バイナリが配置してある同じディレクトリーにターゲットファイルを作成し、同様に、そのディレクトリーに新しいアイコンや スプラッシュスクリーン を探すことになります:

bin\wrapperw.exe --customize --target myapp.exe --icon myicon.ico --splash mysplash.bmp

注意

Wrapper バージョン 3.5.7 から、弊社タヌキソフトウェアからの純正なバイナリであることを認証するために、Windows バイナリ版にコード署名が導入されました。 しかしながら、バイナリをカスタマイズすると、そのバイナリから証明書が削除されることになります。

ターゲット実行ファイル:

Wrapper バイナリがカスタマイズされるとき、常に、カスタマイズされたバージョン用に、 新しいファイル名を指定する必要があります。 既に同じファイル名が存在する場合には、Wrapper は常にそのファイルを上書きします。

wrapperw.exe --customize --target myapp.exe

全てまとめてパラメータを置くと、このような コマンドライン となります:

bin\wrapperw.exe --customize --icon MyIcon.ico --splash MySplash.bmp --target MyApp.exe

このコマンドは、「wrapperW.exe」バイナリが配置してある同じディレクトリーに、カスタマイズされたアイコンや スプラッシュスクリーン と共に、 新しい実行ファイル「MyApp.exe」を作成します。

ダイアログボックスを表示せず、「wrapperw」 をカスタマイズする

wrapperw.exe をカスタマイズする際、ログ出力を表示するダイヤログボックスが開かれます。 これは、カスタマイズが成功したかどうかを確認するのに便利です。 しかし、スクリプトによりカスタマイズを起動するときなどにダイアログボックスを表示すると ウィンドウを閉じるのに人の介入が必要になりますので、プロセスがブロックされる場合があります。 これにより、Wrapper バージョン 3.5.34に 「wrapperw.exe」 をカスタマイズするときにログダイアログを表示しないよう、'--silent'パラメーターを追加しました。 コンフィギュレーションファイルはカスタマイズ化プロセス中に起動しないため、 ログダイアログを表示するかどうか制限する「wrapper.logdialog.enable」 プロパティはバイナリーをカスタマイズするときに使用できません。

例:
wrapperw.exe --customize --silent --target myapp.exe

注意

「wrapperW.exe」 は GUI アプリケーションのため、コンソールから起動されるときに 「CMD.EXE」 はプロセスが終了するのを待機しません。 つまり、終了コードを直接取得することはできません。 もし 「--silent」オプションが指定されている場合、 プロセスが成功したかどうか判断が困難になりますので、上記コマンドの前に 「start /wait を追加することでプロセスを待機し、終了コードを取得できます。

アイコンをカスタマイズする

注意

この機能を利用するためには、Java Service Wrapper の スタンダード版あるいはプロフェッショナル版 が必要です。

Wrapper は、デフォルトアイコンを同梱して配布されています。 しかしながら、Wrapper を同梱している商品のアイコンで置き換えたいと希望するディベロッパー(開発者) もいるはずです。 そのために、Wrapper はアイコンをカスタマイズできる機能を提供しています。

アイコンのファイルは、標準のマルチレイヤー アイコンファイルであり、 サポートする必要がある全ての解像度やアイコンサイズを含んでいます。

設定例:
wrapperw.exe --customize --target myapp.exe --icon myicon.ico

次の画像は、複製された名前の変更された3つの Java Service Wrapper 版と、そのデフォルトアイコンを持つ、カスタマイズされた「MyApp.exe」を含んでいるディレクトリーのスクリーンショットです。

スプラッシュスクリーンをカスタマイズする

注意

この機能を利用するためには、Java Service Wrapper の スタンダード版あるいはプロフェッショナル版 をご利用ください。

Wrapper バイナリのコンソールレス版 「wrapperW.exe」 は、デフォルトで、スタート時に スプラッシュスクリーン を表示します。 このスプラッシュスクリーンは、Wrapper を同梱している商品に合わせたイメージ画像で置き換えることでカスタマイズすることができます。

Wrapper バイナリ「wrapper.exe」では、スプラッシュスクリーンを表示しないため、このスクリーンのカスタマイズは不正です。

Java 内部からではなく、Wrapper にスプラッシュスクリーンを表示させる設定は、 アプリケーションスタートアップ時に瞬時に画面が反応するので利点があります。 つまり、スプラッシュスクリーンは JVM 起動前に表示され、Java アプリケーションのクラスがロード(読み込み)されて初期化されるまで、視覚的なスクリーン状態を維持します。

wrapper.splashscreen.mode] プロパティを使って、スプラッシュスクリーンの動作についてコントロールすることができます。

設定例:
wrapperw.exe --customize --target myapp.exe --splash mysplash.bmp

現在のところ、ビットマップ(*.bmp)ファイルのみをサポートしています。 画像サイズやビット深度の制限はありません。

Java Service Wrapper プロフェッショナル版のデフォルトスプラッシュスクリーン:

Java Service Wrapper スタンダード版のデフォルトスプラッシュスクリーン:

カスタムスプラッシュスクリーンの例:

デフォルトのコンフィギュレーションファイルをカスタマイズする

もしコンフィギュレーションファイルを指定せずに Wrapper バイナリが呼び出されたとき、 Wrapper は、デフォルトで、実行ファイルが配置されているのと同じディレクトリーにあるデフォルトの コンフィギュレーションファイルを利用するものとします。 実行ファイル名をベースにした名前 「{MyApp}」 から、そのコンフィギュレーションファイル名は 「{MyApp}.conf」 です。 例えば: もし実行ファイル名が 「test.exe」 であるなら、Wrapper は 「test.conf」 を開こうとします。

設定例:
wrapperw.exe --customize --target myapp.exe --conf ../conf/myconf.conf

このオプションは、後述の --passthrough」オプション で使われるとき、特に重宝します。

注意

相対パスは、Wrapper 実行ファイルの配置場所に対して相対でなければなりません。

注意

このオプションは、Wrapper バージョン 3.5.5 で追加されました。

コマンドラインの挙動をカスタマイズする

デフォルトで、Wrapper はパラメータを解釈します。 JVM アプリケーションへ引き渡すべきパラメータは [wrapper.app.parameter.<n>] プロパティで定義する必要がありました。 Wrapper バージョン 3.5.2 で、 JVM アプリケーションへ簡単に引き渡しできるように 「--」 コマンドが追加されましたが、 この新しいオプションでアプリケーションをカスタマイズするには、実際に Wrapper を バックグランドに置き、実行ファイルをネイティブ Windows アプリケーションのように主権を 有する Windows アプリケーションのように見せかけます。

この機能性を有効にするには、Wrapper 実行ファイルをカスタマイズするコマンドに 「--passthrough」 パラメータを追加すればよく、 その新しい実行ファイルは簡単にこれ一つで Java アプリケーションを開始します。

Wrapper は全てのパラメータを JVM へ引き渡すため、コマンドラインを通してコンフィギュレーションファイルを指定することはできません。 新しい実行ファイルは、むしろデフォルトのコンフィギュレーションファイルの利用を試みます。 デフォルトのコンフィギュレーションファイルを変更するためには、前述の --conf」 オプションの利用を検討してください。

設定例:
wrapperw.exe --customize --target myapp.exe --passthrough

警告

全体のコマンドラインが JVM へ引き渡され、Wrapper がコマンドラインからの入力を無視しますので、 カスタマイズされた実行ファイルがアプリケーションを Windows サービスとしてインストールすることができなくなります。

注意

このオプションは、Wrapper バージョン 3.5.5 で追加されました。

製造業者をカスタマイズする

Wrapper バイナリでは、バージョン情報リソースを定義させ、バージョン番号、著作権情報、ファイル説明、 製造業者などの基本ファイル情報を設定します。 製造メーカーのアプリケーションに Wrapper を同梱して配布する際に、Wrapper バイナリで表示される製造会社情報として、弊社 「タヌキソフトウェア(有)」 の代わりに、各製造会社の情報を表示したいと希望されることも多いでしょう。下記のように、製造業者をカスタマイズすることができます。

設定例:
wrapperw.exe --customize --target myapp.exe --manufacturer "My Example Company"

注意

このオプションは、Wrapper バージョン 3.5.10 で追加されました。

コンフィギュレーションをカスタマイズする

Wrapper バージョン 3.5.35より、Wrapper バイナリにコンフィギュレーションプロパティーを埋め込むことが可能になりました。

それを設定するために下記4つのオプションを利用いただけます。

  • [properties-default] : コマンドラインにリストされているプロパティのデフォルト値を変更します。
  • [property-file-default] : コンフィギュレーションファイルにリストされているプロパティのデフォルト値を変更します。
  • [properties-final] : final(オーバーライド不可)プロパティをコマンドラインにリストし、埋め込みます。
  • [property-file-final] : コンフィギュレーションファイルから、final(オーバーライド不可)プロパティを埋め込みます。
例(コマンドラインにプロパティをリスト):
wrapperw.exe --customize --target myapp.exe --properties-default wrapper.console.format=LPTM --properties-final wrapper.name="testwrapper" wrapper.displayname="Test Wrapper Sample Application" wrapper.description="Test Wrapper Sample Application Description"

コンフィギュレーションプロパティを直接コマンドラインに設定する場合、 (空白)スペースで区切る必要があります。 値にスペースが含まれている場合は必ず「"」(ダブルクォート)で囲みください。

例(コンフィギュレーションファイルを使用):
wrapperw.exe --customize --target myapp.exe --property-file-default ../conf/wrapper-embedded-default.conf --property-file-final ../conf/wrapper-embedded-final.conf

Wrapper バイナリ内にライセンスプロパティを埋め込むことが出来ます。

Example:
wrapperw.exe --customize --target myapp.exe --property-file-final ../conf/wrapper-license.conf

ターゲットの「.exe」ファイルに埋め込まれているプロパティを表示するにはwrapper.properties.dump.format プロパティの「S」及び「Z」トークンを使用し、wrapper.properties.dump.loglevel を「INFO」に設定してください。

Wrapper バージョン 3.5.36 より、 バイナリが埋め込みプロパティでカスタマイズするとコンフィギュレーションファイルは不要です。 すべての設定を埋め込むことでアプリケーションの起動を容易にできます!

Wrapper バージョン 3.5.37 より、 Wrapper を起動させるコマンドラインに「-」を指定することでコンフィギュレーションファイルをスキップすることが出来るようになりました。 これをすることで、「-」の後にコマンドラインプロパティを追加でき、組み込みコンフィギュレーションを オーバーライド(無効に)することが出来ます。

注意

Wrapper バージョン 3.5.36より、 環境変数と、コンフィギュレーションプロパティの値に参照されている変数はカスタマイズ時に 展開されず、実行時に展開されます。 ディレクティブに参照されている変数やインクルードファイルのパスはカスタマイズ時に展開され続けます。

コンフィギュレーションファイルをオプショナルにする

バージョン 3.5.43 で導入された「--conf-optional」オプションは、 カスタマイズされたターゲットがコンフィギュレーションファイル無しでも実行するのに十分な組み込みコンフィギュレーションが含まれていることを示すために使用されます。

デフォルトでは、Wrapper が作動するにはコンフィギュレーションファイルが必要です。 これは、Java アプリケーションを正しく起動するために最小限のコンフィギュレーションが必要だからです。 Java アプリケーションを適切に起動するために Wrapper に十分なコンフィギュレーションを埋め込むようにカスタマイズ コマンドラインを設定している場合は、このオプションを追加して、コンフィギュレーションファイル無しで Wrapper を実行できます。 これにより、エンドユーザーが Wrapper 実行ファイルを起動しやすくなります。

Wrapper バイナリに一部のコンフィギュレーションのみ(ライセンスキー等)を含む場合、このオプションは使用しないでください。

注意

このオプションは、Wrapper バイナリにコンフィギュレーションを埋め込む時に処理されます。

警告

Wrapper バージョン 3.5.35 から 3.5.42 までのバージョンでは、 組み込み構成のカスタマイズされた Wrapper はコンフィギュレーションファイル無しでも実行できましたが、Java アプリケーションを 起動するために必要なコンフィギュレーションがすべて揃っていないと、Wrapper は失敗していました。 信頼性を高めるために、バージョン 3.5.43 以降では、「--conf-optional」が指定されていない限り ファイルが必要であると想定しています。

参照: WrapperW コンフィギュレーション プロパティ

Wrapper バイナリのコンソールレス版「wrapperw.exe」のみで利用されるプロパティ: