wrapper.java.library.path.append_system_path プロパティ

対応バージョン :3.1.0
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

Java Service Wrapperは、ネイティブライブラリーコンポーネントを含んでおり、 [java.library.path] システムプロパティを使っているJVMへ、その配置場所を引き渡すことで、ライブラリーの配置場所を設定します。

通常は、Javaが起動したときに、ライブラリーパスが指定されていない場合、 JVMはデフォルトで、Windows上でシステムパス「PATH」を利用し、 UNIXシステム上で「LD_LIBRARY_PATH」を利用し、 アプリケーションによって読み込まれたネイティブライブラリーを配置します。 このように、JVMを起動したときに特定のクラスパスが指定されていない時、 クラスパス環境変数についても、同様のことが発生します。 クラスパス環境変数の利用により、矛盾問題の全ての理由により、スタイルから欠落します。 その矛盾問題とは、同じマシン上に複数のJavaアプリケーションがインストールされている時に起きることがあるものです。 同様に、同じ問題が、ライブラリーパスに関連するものに発生します。 しかし、一部のアプリケーションでは依然としてデフォルトでシステムパス「PATH」や 「LD_LIBRARY_PATH」を利用するものもあります。

一般的に、アプリケーションをデプロイするときに、 Javaライブラリーパスにどのディレクトリーが含まれるかについて、 保守的に(昔式に)することで潜在的な問題を避けることをお薦めします。 しかしながら、もしパス全体を検索する必要性があるならば、 JVMを起動するときに使われるJavaライブラリーパスへ、 「システムPATH」や「LD_LIBRARY_PATH」 のコンテンツをWrapperが追加できるように、このプロパティを設定します。 prepended でなく、むしろappended であるため、 [wrapper.java.library.path.<n>] プロパティを使って設定したディレクトリーには、優先度が与えられます。 デフォルト値は「FALSE」です。

設定例:
wrapper.java.library.path.append_system_path=FALSE

注意

一部のネイティブライブラリーは、動的にリンクされた他のライブラリーを参照します。 Javaは、Javaライブラリーパスを使い、初期JNIライブラリーを配置しますが、 セカンダリーライブラリーは、そのプラットフォームのデフォルトメカニズムを使い、ロード(読み込み)されます。

Windowsシステムでは、まず現在の作業ディレクトリー (「wrapper.exe」の配置場所)を覗き、その後、 「Windows system32」ディレクトリーとWindowsディレクトリーを覗きます。 最後に、システムパス「PATH」全体を検索します。 もし両方のDLLファイルが自分のアプリケーションの「lib」ディレクトリー に配置されていた場合、次のように、そのパスをシステムパスに追加する必要があるかもしれません。 その「set.PATH」はWindows用の設定であり、 「set.LD_LIBRARY_PATH」は、 クロスプラットフォーム向けのコンフィギュレーションファイル用の設定であるため、UNIXシステム上でも同様に動作します。 Mac OSXでは、「set.DYLD_LIBRARY_PATH」変数も活用できます。

set.PATH=..%WRAPPER_FILE_SEPARATOR%lib%WRAPPER_PATH_SEPARATOR%%PATH%
set.LD_LIBRARY_PATH=..%WRAPPER_FILE_SEPARATOR%lib%WRAPPER_PATH_SEPARATOR%%LD_LIBRARY_PATH%
set.DYLD_LIBRARY_PATH=..%WRAPPER_FILE_SEPARATOR%lib%WRAPPER_PATH_SEPARATOR%%DYLD_LIBRARY_PATH%

現在の作業ディレクトリーの中でなく、 「PATH」上に、セカンダリーライブラリーを配置すると、 他のアプリケーションによってインストールされた古いバージョンのライブラリーが、 「Windows system32」ディレクトリーで 競合するかもしれないリスクがありますので、ご注意ください。 これは、システムがファイルを検索する順番によるものです。

この問題は、システム上にSAPアプリケーションもまたインストールされている場合に、 SAPのJCOライブラリーの動作にも見られることです。

参照: ライブラリー