2012-03-28 10 views
0

カスタム作成の共有ライブラリ "libMyInit.so"(libMyInit.so.1およびlibMyInit.so.1.0にリンクされている)を使用するアプリケーション(CentOS用) .1)とlibMyUtil.so(libMyUtil.so.1およびlibMyUtil.so libMyUtil.so.1.0.1でリンクされています)。これらのライブラリは、MyApp/bin/libMyInit.so & MyApp/bin/util/libMyUtil.soのようなアプリパッケージ内にそれぞれのリンクされたライブラリとともに存在します。 私はアプリケーションを実行する必要があります私は明示的にLD_LIBRARY_PATHに上記のパスを追加しなければなりません: ERROR:Unable to load native MyUtil library. Reason: no MyUtil in java.library.pathのようなエラーを与える。カスタムメイドの共有ライブラリファイルのインストール/その他の代替手段のインストール

ライブラリをLD_LIBRARY_PATHに手動で追加することを避ける方法はありますか? カスタムライブラリーがjava.library.pathにあるように、共有ライブラリーまたはそれ以降のコンパイル時に何かできることがありますか?

答えて

0

IMHOこれを行う最良の方法は、クラスの静的部分にカスタムSystem.loadLibraryを使用することです。 Javaのportaudioバインディング[email protected]、特にLoadLibraryJPAクラスを見てください。

LoadLibraryクラスは、OSのタイプとアーキテクチャに基づいてネイティブライブラリを選択し、JARのlibを一時フォルダにアンパックしてそこからロードします。

JPAは、LoadLibrary.loadを呼び出すだけで、サポートされているすべてのOSで自動的にすべてが動作し、1つのJARファイルが必要です。

0

これらのライブラリを/ usr/lib、/ lib、/ usr/local/libディレクトリのいずれかにコピーする方法の1つがあります。