Previous | Next | Trail Map | Writing Java Programs |

システム資源の使用


動的ライブラリのロード

System クラスは、Java アプリケーションが動的ライブラリをロードすることができる load() loadLibrary() の2つのメソッドを提供する 。


注釈: アプレットは動的ライブラリをロードすることができない。 アプレットの中からのload() あるいは loadLibrary() への呼び出しは SecurityException をもたらす。

一般にプログラムは、ネイティブメソッドで動作している時に、クラスの静的イニシャライザの中からこれらのメソッドの1つを呼び出す。 ネイティブメソッドの作成に関する情報については、 ネイティブメソッドのJava プログラムへの統合(in the Integrating Native Methods into Java Programs trail)を参照のこと。

load() メソッドは、引数としてライブラリの絶対パス名を必要とする。 例えば、 Solaris システムでは次のように書くことができる。

System.load("/home/me/libs/libmylib.so");

これは、/home/me/libs ディレクトリの libmylib.so ライブラリをロードするものである。

ライブラリをロードするためにパス名を使用するが、通常パス名はシステムに依存するので、load() メソッドの使用はシステムに依存する。 したがって、 loadLibrary() は、場合によってはもっと良い選択である。 しかし、動的にロード可能なライブラリはシステムに依存するので、load()???原文誤り??? の使用はライブラリそれ自身をロードする行為よりも、システム独立の解決にならないことがある。

loadLibrary() メソッドは、ロードする名前が必要である。

System.loadLibrary("mylib");

loadLibrary() メソッドはライブラリを検索する。 loadLibrary() により実行される検索は、実行中のシステムに依存する。しかし一般に、その目的に設定した環境変数で示されたディレクトリを検索する。 この詳細は、 ネイティブメソッドのJava プログラムへの統合(in the Integrating Native Methods into Java Programs trail)で解説する。


Previous | Next | Trail Map | Writing Java Programs |

システム資源の使用