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

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

このプロパティには、アプリケーションで利用するネイティブライブラリ(JNI)を検索する対象の ディレクトリをリストとして指定しておきます。 指定ディレクトリの中に、Wrapper ネイティブライブラリ (Windows:「wrapper.dll」、Linux/UNIX:「libwrapper.so」) を必ず置かなければなりません。

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

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

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

Wrapper によって生成された Java ライブラリパスの末尾にシステムパスを追加するように要求することで、 デフォルトの Java 動作を取得することもできます。 操作に入る前に、 [wrapper.java.library.path.append_system_path] プロパティに関連するドキュメントを熟読してください。

注意

スペースを含むライブラリパスエントリ:

Wrapper では、スペース(空白)を含むパス要素を正しく取り扱います。 最終の生成されたライブラリパスを引用符で囲むことで Wrapper が自動的に処理します。 個別のライブラリパス要素のプロパティ値は、スペース(空白)を含んでいても 引用符を含む定義をするべきではありません。

注意

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

セカンダリ ライブラリが配置されているパスを構成するには、 [wrapper.system.library.path.<n>]プロパティを使用してください。

プラットフォーム仕様によるネイティブライブラリ

Wrapper では、たとえアプリケーションがネイティブライブラリを利用していたとしても、 どんなプラットフォーム上でも動作するバイナリ配布を、簡単に作成できる機能も提供します。

Wrapper のネイティブライブラリのケースで見ると、 Wrapper は、ネイティブコンポーネントの配置の仕方に関しても、賢くできており、 ライブラリには、現在の OS 名、プラットフォーム名や、ビット深度を含むような名前がつけられています。 例えば、 「wrapper-windows-x86-32.dll」や 「libwrapper-linux-x86-32.so」です。

しかしながら、一般的にほとんどのライブラリは、このような機能をサポートしておらず、 ネイティブライブラリに、全てのプラットフォームで同じ名前が付けられていることも多いようです。 その場合、通常は、アプリケーションのプラットフォーム仕様向けごとに個別に配布する必要性があります。 ところが、下記のようにライブラリパスを定義することにより、 Wrapper は動的にランタイムで正しいプラットフォーム仕様ディレクトリを参照し、 単一の Wrapper 配布だけで、全てのプラットフォームをサポートすることが可能なのです。

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

次のように解決します。

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

注意

上記のように、ネイティブライブラリが独自の外部ライブラリを読込む必要がある場合は、パスも正しく設定する必要があります。 これらのファイルがシステムに外部的にインストールされている場合は、上記の方法が機能します。 ただし、アプリケーションとともに配布する場合は、他のネイティブライブラリとともにプラットフォーム固有のディレクトリに配置します。 [wrapper.system.library.path.<n> ]プロパティは次のように設定できます。

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

参照: ライブラリー