計算に 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ファイルはヘッダーファイルとともにそのディレクトリにあります。
アップデート
MATLAB で DLL を使用するメソッドを実行できました。
DLL を使用しない通常のメソッドを Java から呼び出すことができました。
DLL を使用するメソッドを呼び出すこともできますが、ライブラリをロードするときに問題が発生しています。
それは言う
Error using ==> loadlibrary at 477
There was an error loading the library
"C:\Users\AUG\Documents\Backup\SourceTracing\epanet2.dll"
ただし、MATLAB でコードを実行すると、すべて正常に動作します。Java から実行すると、DLL がロードされません。