コンフィギュレーションプロパティでのパスについて

Javaでは、Windows上で スラッシュ「/」と バックスラッシュ「\」を 正しく取り扱います。 Java Service Wrapperのコンフィギュレーションファイル 「wrapper.confを、クロスプラットフォーム互換にも対応できるように、 「wrapper.conf」ファイル内で指定する際に 全てのパスに、スラッシュを使うべきです。

Windows: Windows上でJava Service Wrapperのスタートアップ時に、常に、 Wrapper実行ファイルがある場所を、カレント作業ディレクトリーとして設定します。 WrapperがJavaを起動するとき、その作業ディレクトリーはそのまま存続し、相対パス参照が確実に機能するようにします。

Linux/UNIX: Linux/UNIXバージョン上では、 Wrapperに同梱して提供しているシェルスクリプト(sh)により、 そのスクリプトがある場所を、作業ディレクトリーーとして設定します。 これにより、Wrapperを起動するために使われるスクリプトが抽象的な参照を使って参照されるときでも、 相対パスは、常に正しく動作するようになります。

相対参照のススメ:

上記のように優れた柔軟性のある機能により、全てのプラットフォーム上において、 コンフィギュレーションファイル内に明記されている全てのファイル参照を、相対パスで使えるようになります。 ほとんどのケースでは、相対パスが好ましいです、 その理由は いかなる配置場所にも、アプリケーションを簡単にインストールすることが簡単になり、 設定を変更することなく、正しく動作するからです。 ほとんどのケースでは、全てのプラットフォーム上で、ファイルの相対参照が可能です。

絶対パスを相対パスへ変更:

下記に示すコンフィギュレーションファイルの一部の例では、 プラットフォームのパスを絶対パスで表記しているプロパティ値を、相対パスに変更している一例です。 2番目のプロパティ例で、プラットフォームの構造に何も影響されていないことに注目してください。 この例では、Wrapperバイナリ や スクリプトが、 アプリケーションホームディレクトリー下にある「bin」ディレクトリーに配置されているという前提です。 アプリケーションその「JRE」も含んでおり、ユーザーにとって、インストール作業が簡単になります。

修正する前の『絶対パス』プロパティ:
wrapper.java.command=C:/MyApp/jre/bin/java
wrapper.java.classpath.1=C:/MyApp/lib/wrapper.jar
wrapper.java.library.path.1=C:/MyApp/lib
wrapper.logfile=C:/MyApp/logs/wrapper.log
修正した後の『相対パス』プロパティ:
wrapper.java.command=../jre/bin/java
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.library.path.1=../lib
wrapper.logfile=../logs/wrapper.log