无法通过Java在MATLAB中加载DLL
unable to load a DLL in MATLAB through Java
我正在开发一个使用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:UsersAUGDocumentsBackupSourceTracingepanet2.dll"**
FAiled..Error using ==> loadlibrary at 477
Undefined function or variable 'epanet2_proto'.
There was an error loading the library
"C:UsersAUGDocumentsBackupSourceTracingepanet2.dll"
Error in ==> epanetloadfile at 31
Undefined function or variable 'epanet2_proto'.
Error in ==> sourceTraceGUI at 8
当我实际检查地址时,DLL文件以及头文件也在该目录中。
我试了Richie的所有建议。
我可以在MATLAB上运行使用DLL的方法
我可以从Java调用任何不使用DLL的普通方法。
我甚至可以调用使用DLL的方法,但是问题发生在应该加载库时。
上面写着
Error using ==> loadlibrary at 477
There was an error loading the library
"C:UsersAUGDocumentsBackupSourceTracingepanet2.dll"
如果我在MATLAB中运行代码,它都工作得很好。只是当我从Java运行时,DLL没有加载。
我在Matlab论坛上发布了这个问题,最终得到了一些答案。如果以后有同样的问题,请参考这个链接。
http://www.mathworks.com/matlabcentral/answers/11321-loading-a-dll-in-mathlab-through-java问题可能出现在很多地方,而且您的示例不可复制,因此很难回答问题。为了弄清问题的根源,我们需要拆解问题,缩小错误的来源。以下是一些可以尝试的方法。
可以直接运行MATLAB建模代码,包括运行对DLL的调用吗?
如果你不调用DLL,你的MATLAB代码运行吗?(也许不调用,只是让它现在返回一个数字。)
你可以调用其他方法从DLL,窗体在您的JAVA项目?
相关文章:
- std::原子加载和存储都需要吗
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 为什么加载SDF会导致Mobilizer创建闭环错误
- C++atioglxx.pdb未加载错误glBufferData OpenGL
- 如何使用tinyxml2从XML加载父实体和子实体
- 如何在C++中使用pybind11加载一个pickle python列表
- 系统.将数组移交给c#中动态加载的c++DLL时发生AccessViolationException
- 当我尝试加载内核模块时,如何修复C++中的这个 malloc() 错误?
- 树莓上的 Libtorch 无法加载 pt 文件,但在 ubuntu 上工作
- Python ctypes:不会按预期加载 dll
- 加载由 MATLAB Coder 生成的带有函数的 DLL,该函数调用外部函数
- 如何使用 "Matlab Data / Engine API for c++" 在 c++ 中加载 .mat
- 加载图像集 - Matlab-->C++ 翻译
- 将一个C++ DLL 加载到 matlab 中,该 matlab 调用另一个 DLL 中的函数
- 从c++调用MATLAB dyld:库未加载错误
- 64位Matlab加载库
- 如何在Matlab中训练一个模型,将其保存到磁盘,并在c++中加载程序
- 无法通过Java在MATLAB中加载DLL
- 如何使用犰狳加载 MATLAB 矩阵