wrapper.system.library.path.<n> プロパティ

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

一部のネイティブライブラリは、他の動的にリンクされるライブラリを参照しています。 Java は Java ライブラリパスを使用して最初の JNI ライブラリを検索しますが、 二次的なライブラリはオペレーティングシステムのデフォルトのメカニズムを使用してロードされます。

これらのプロパティは、オペレーティングシステムのデフォルトのメカニズムを使用してロードされる補助ライブラリを検索するディレクトリの リストを指定するために使用されます。設定されたパスは、すべての Wrapper の子プロセスにも適用されます。

<n> コンポーネント部:

各要素は「wrapper.system.library.path.」で始まるプロパティ名を持ち、 そのプロパティ名の 「<n>」コンポーネント部には、 「1」からカウントアップしていく整数値のナンバリング数値を入れて指定します。 デフォルトでは、整数値は連番であり、ギャップ(途切れ)は許可されません。 [wrapper.ignore_sequence_gaps]プロパティを 任意に設定することでシーケンス内のギャップを許可できます。

設定例:
wrapper.system.library.path.1=../lib

注意

wrapper.system.library.path.<n>]プロパティは Wrapper ver. 3.6.0 で導入されました。 それ以前の Wrapper バージョンでは、環境変数を手動で設定することで、セカンダリライブラリへのパスを指定することができました。

Windows では、システムはまず現在の作業ディレクトリwrapper.exe のある場所)を探し、次にWindows の System32 ディレクトリと Windows ディレクトリを探します。 最後に、システム全体の PATH 環境変数に指定されているパスをすべて検索します。 両方の DLL ファイルがアプリケーションの lib ディレクトリに配置されている場合は、 以下のようにその場所をシステムパスに追加する必要がある場合があります。 set.PATHは Windows 用で、set.LD_LIBRARY_PATHは設定ファイルを クロスプラットフォーム対応にするため、UNIX システムでも動作します。 macOS 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 ライブラリを 使用する際に発生することが確認されています。

プラットフォーム固有のネイティブライブラリ

ほとんどのライブラリは、ネイティブライブラリがすべてのプラットフォームで同じ名前であることを想定しています。 これは通常、アプリケーションのプラットフォーム固有のディストリビューションをリリースする必要があるという結果につながります。 しかし、ライブラリパスを以下のように定義することで、Wrapper は実行時にプラットフォーム固有の 正しいディレクトリを動的に参照するようになり、サポートされているすべてのプラットフォームを単一のディストリビューションに 含めることが可能になります。

設定例:
wrapper.system.library.path.1=../lib
wrapper.system.library.path.2=../lib/native/%WRAPPER_OS%-%WRAPPER_ARCH%-%WRAPPER_BITS%

上記が、次のように解決されます。

Windows:
wrapper.system.library.path.1=../lib
wrapper.system.library.path.2=../lib/native/windows-x86-32
Linux:
wrapper.system.library.path.1=../lib
wrapper.system.library.path.2=../lib/native/linux-x86-32
Solaris:
wrapper.system.library.path.1=../lib
wrapper.system.library.path.2=../lib/native/solaris-sparc-32

参照: ライブラリー