jarファイルとjniライブラリのインストール方法
(c) YsPhoto|写真素材 PIXTA
Javaの外部ライブラリ(*.jar)をJavaの処理系が参照できるようにするためには,環境変数CLASSPATHに追加したり,コマンド実行時に -classpath オプションを追加するなどの方法がありますが,jarファイルの数が多くなってくるといちいち指定するのは面倒です。
Java 2 (JDK 1.2)からの機能拡張により,システム標準のjarファイル置き場が設けられているので,OS別に情報をまとめました。
同時に,jniライブラリ(*.so, *.dll, *.jnilib)の置き場所についても記しています。
なお以降の説明では,Javaの開発環境(JDK)のインストールディレクトリを環境変数JAVA_HOMEに,実行環境(JRE)のインストールディレクトリを環境変数JRE_HOMEに設定してあるものとします。
Linux
jarファイルの置き場所は,以下のとおりです。
jniライブラリ(*.so)の置き場所は,以下のとおりです。
<アーキテクチャ>の部分は,32ビット環境では“i386”に,64ビット環境では“amd64”になるようです(JDK 1.6で確認)。
Windows
jarファイルの置き場所は,以下のとおりです。
Windowsの場合,jniライブラリ(*.dll)の置き場所として特別な場所が用意されているわけではなく,PATHが通っていればどこでも良いようです。
2011-08-29 訂正
8/25の版では,Windows用jniライブラリ(*.dll)の置き場所を「%JAVA_HOME%\jre\lib\<アーキテクチャ>」または「 %JRE_HOME%\lib\<アーキテクチャ>」と書きましたが,JDK 1.6.0で確認したところ誤りでした。32ビット版JDKをインストールするとi386というフォルダができますが,ここにDLLをコピーしてもjava起動時に検索できずエラーとなります。
PATHの設定が空の状態で以下のプログラムを実行して,実際の検索パスを調べたところ,
public class LibraryTest { public static void main(String[] args) { System.out.println(System.getProperty("java.library.path")); } }
次のようになりました。
C:\Program Files\Java\jdk1.6.0_24\bin;.;C:\WINDOWS\Sun\Java\bin;
C:\WINDOWS\system32;C:\WINDOWS
「上記の検索パス」+「PATHの設定」が,java実行時のjniライブラリの検索パスとなると思われます。
実用上は「%JAVA_HOME%\bin」に置くのが良さそうです。