System クラスは、Java アプリケーションが動的ライブラリをロードすることができる load() と loadLibrary() の2つのメソッドを提供する 。
注釈: アプレットは動的ライブラリをロードすることができない。 アプレットの中からのload() あるいは loadLibrary() への呼び出しは SecurityException をもたらす。
一般にプログラムは、ネイティブメソッドで動作している時に、クラスの静的イニシャライザの中からこれらのメソッドの1つを呼び出す。 ネイティブメソッドの作成に関する情報については、 ネイティブメソッドのJava プログラムへの統合
を参照のこと。
load() メソッドは、引数としてライブラリの絶対パス名を必要とする。 例えば、 Solaris システムでは次のように書くことができる。
System.load("/home/me/libs/libmylib.so");これは、/home/me/libs ディレクトリの libmylib.so ライブラリをロードするものである。
ライブラリをロードするためにパス名を使用するが、通常パス名はシステムに依存するので、load() メソッドの使用はシステムに依存する。 したがって、 loadLibrary() は、場合によってはもっと良い選択である。 しかし、動的にロード可能なライブラリはシステムに依存するので、load()???原文誤り??? の使用はライブラリそれ自身をロードする行為よりも、システム独立の解決にならないことがある。
loadLibrary() メソッドは、ロードする名前が必要である。
System.loadLibrary("mylib");loadLibrary() メソッドはライブラリを検索する。 loadLibrary() により実行される検索は、実行中のシステムに依存する。しかし一般に、その目的に設定した環境変数で示されたディレクトリを検索する。 この詳細は、 ネイティブメソッドのJava プログラムへの統合
で解説する。