2011-06-21 21 views
1

私のMacでは、cmdの行からいくつかの依存関係があるJavaプログラムを実行できますが、LinuxのSUSE 11ボックスで実行しようとすると、 :Java - Javaでのjava.library.pathの問題

java -Djava.library.path=../lib -cp ../jar/a-jar.jar:. MyMainClass 

をすべてのヘルプは感謝:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no myNativeLib in java.library.path 

これは、私が実行しているCMDラインです!

答えて

1

java.library.pathの絶対パスを使用することをお勧めします。少なくとも、相対パスの解決の可能性のある問題を排除します。

また、確認するには、libにLinuxライブラリがありますか? Macは動作しません。

+0

...あなたは何かを後にしているかもしれません。報告する! – JohnIdol

0

私は、Oracleのネイティブ・データベース・ドライバを使用しようとしていると思っています(ダウンボントがたくさんあるという危険性があります)。

実際に使用しているデータベースドライバの場合は、ネイティブバージョンを使用して、-cp拡張子を使用してクラスパスに.jarシンクライアントを組み込むことができます。これにより、ネイティブドライバを起動しようとしていないようなコード変更が必要になることがあります。

ネイティブドライバを使用している場合、またはコードがそれに依存している必要があります。 java.library.path変数がバイナリー・ドライバー・ファイル(通常は.so拡張子で示される)を含むディレクトリーに設定されていることを確認する必要があります。

これらのドライバファイル(ネイティブバイナリであるため)は、linuxの配布用にコンパイルされており、Macインストールから便利にコピーされたものではありません。

これらのことをしていない場合は、私が言ったことすべてを無視して自由に感じてください。

+0

は駄目です - 残念なことにoracleやデータベースドライバはありませんが、感謝します! – JohnIdol