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.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 バイナリでは、バージョン情報リソースを定義させ、バージョン番号、著作権情報、ファイル説明、 製造業者などの基本ファイル情報を設定します。 製造メーカーのアプリケーションに Wrapper を同梱して配布する際に、Wrapper バイナリで表示される製造会社情報として、弊社 「タヌキソフトウェア(有)」 の代わりに、各製造会社の情報を表示したいと希望されることも多いでしょう。下記のように、製造業者をカスタマイズすることができます。
wrapperw.exe --customize --target myapp.exe --manufacturer "My Example Company"
このオプションは、Wrapper バージョン 3.5.10 で追加されました。
Wrapper バージョン 3.5.35より、Wrapper バイナリにコンフィギュレーションプロパティーを埋め込むことが可能になりました。
それを設定するために下記4つのオプションを利用いただけます。
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 バイナリ内にライセンスプロパティを埋め込むことが出来ます。
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」が指定されていない限り ファイルが必要であると想定しています。
Wrapper バイナリのコンソールレス版「wrapperw.exe」のみで利用されるプロパティ:
「wrapperW.exe」 がエラー状態でシャットダウンされるとき、ログダイアログを表示するかどうかを設定します。
ログダイアログに表示される出力ログの表示形式を設定します。
ログダイアログとして表示される出力ライン数の最大値を設定します。
ログダイアログのメッセージをログレベルに応じてフィルタリングします。
「wrapperW.exe」を実行するときのスプラッシュ画面を表示するタイミングを設定します。