2012-02-01 13 views
0

LinuxシステムからIntelliJ Java Webアプリケーションプロジェクト(Mavenプロジェクト)をインポートしようとしていますWindowsシステム。このJavaプログラムは、実行するために2つの外部ライブラリに依存しています。IntelliJ java.lang.UnsatisfiedLinkError:C: User ... java_bridge.dll:依存ライブラリが見つかりません

私のテストケースを実行して成功すると、両方のライブラリが正常にロードされますが、Windowsシステムに移動したときに、ライブラリのうちの1つが正常に機能しなくなりました。 Approproiteウィンドウのバイナリを取得します)。

私は.dllファイルがディレクトリに存在しているので、私は、私が間違ってやっているかわからないんだけど、この時点でエラー

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Admin\Desktop\SAINT\Packages\cellml-sdk-1.9\lib\cellml_java_bridge.dll: Can't find dependent libraries 

を得続けます。 .dllの場所はWindowsのPATH変数にもあり、-Djava.library.path = C:¥Users¥Admin¥Desktop¥SAINT¥Packages¥cellml-sdk-1.9¥libを使用してjavaに指定しています。

おかげ

答えて

0

イベントログのウィンドウを並べて表示します(SxS)。彼らはおそらく、欠落しているdllを指摘するでしょう。そうでない場合は、dependency walker

+0

OK、私はD.Walkerを実行しました。それは3つの欠けている依存関係を私に与えます。私はこれらのdllの場所をPATHに追加しましたが、依然依存性ウォーカーはまだそれらを見つけることができないと私に伝えます。助言がありますか? –

+0

ああ、DWは使いにくいです。あなたは何が起こっているのか把握しようとするためにそれを突き止めなければなりません。 Evenlogは通常、より簡単なオプションです。それでも問題が解決しない場合は、sysinternalsからProcess Monitorを試してみてください。PATHでDLLを探してファイルを見つけられないというエラーが表示されます。 –

+0

オカルトにはたくさんのものがありますが、失敗したテストを実行した時代にはそれをフィルタリングしました。私はどんなメッセージを探していますか? –

0

エラーメッセージは言う:依存ライブラリを見つけることができません。必要なDLLは他のDLLが必要で、java.library.pathではなく、PATH環境変数にあるディレクトリに存在する必要があります。

依存関係を確認するには、objdumpを使用します。

あなたはPATHに.dllファイルへのフルパスを追加していませんか?依存関係を含むディレクトリをパスに入れるだけです。

+0

を使用して、どのDLLが必要か、どこにあるのかがわかります。私はLinuxでこれをやったとき、はるかに簡単でした... –

関連する問題