1

計算に MATLAB コードを使用する Java GUI アプリケーションに取り組んでいます。ただし、MATLAB コード自体は DLL ファイルを使用します。すべての MATLAB 関数をクラスにパックし、jar ファイルを作成しました。

Java プロジェクトのプロジェクト ルート フォルダーに C ヘッダー ファイルと DLL ファイルを追加し、MATLAB コードを含む jar をプロパティに追加しました。ただし、メソッドを呼び出すと、実行されているように見えますが、DLL ファイルをロードできません。

これが私が得るエラーメッセージです:

{??? Error using ==> loadlibrary at 477
There was an error loading the library
**"C:\Users\AUG\Documents\Backup\SourceTracing\epanet2.dll"**
FAiled..Error using ==> loadlibrary at 477
Undefined function or variable 'epanet2_proto'.

There was an error loading the library
"C:\Users\AUG\Documents\Backup\SourceTracing\epanet2.dll"
Error in ==> epanetloadfile at 31

Undefined function or variable 'epanet2_proto'.

Error in ==> sourceTraceGUI at 8

実際にアドレスを確認したところ、DLLファイルはヘッダーファイルとともにそのディレクトリにあります。

アップデート

Richie提案をすべて試しました。

  1. MATLAB で DLL を使用するメソッドを実行できました。

  2. DLL を使用しない通常のメソッドを Java から呼び出すことができました。

  3. DLL を使用するメソッドを呼び出すこともできますが、ライブラリをロードするときに問題が発生しています。

それは言う

Error using ==> loadlibrary at 477
There was an error loading the library
"C:\Users\AUG\Documents\Backup\SourceTracing\epanet2.dll"

ただし、MATLAB でコードを実行すると、すべて正常に動作します。Java から実行すると、DLL がロードされません。

4

2 に答える 2

2

この質問をMatlabフォーラムに投稿し、最終的にいくつかの回答を得ました。今後も同じ問題が発生する方は、こちらのリンクをご覧ください。

http://www.mathworks.com/matlabcentral/answers/11321-loading-a-dll-in-mathlab-through-java

于 2011-07-11T21:28:51.653 に答える
0

問題が発生する可能性のある場所はたくさんあり、例は再現できないため、そのままでは答えることが困難です。この問題を解決するには、問題の選択を解除し、エラーの原因を絞り込む必要があります。試してみることがいくつかあります。

DLLの呼び出しの実行を含め、MATLABモデリングコードを直接実行できますか?

DLLを呼び出さない場合、MATLABコードは実行されますか?(たぶん、電話を偽って、今のところ番号を返してもらうだけです。)

DLLから、JAVAプロジェクト内で他のメソッドを呼び出すことはできますか?

于 2011-07-08T13:58:28.703 に答える