使用 Matlab 运行时无法找到 mclmcrrt*.dll

Failed to find mclmcrrt*.dll with Matlab Runtime

我创建了一个 Matlab 函数,我想从 Java 应用程序调用它。由于我没有在这台机器上安装 matlab,所以我使用 Matlab Runtine(8.5 版,32 位)。

当我执行代码时,出现此错误:

线程 "main" java.lang.UnsatisfiedLinkError 中出现异常:无法在 java.library.path 上找到所需的库 mclmcrrt8_5.dll。 该库通常与 MATLAB 或 MCR 一起安装。它不存在可能表示该安装或当前路径配置存在问题。 此组件尝试使用的 MCR 版本是:8.5.

at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.get(MCRConfiguration.java:259)
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.<clinit>(MCRConfiguration.java:265)
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getProxyLibraryDir(MCRConfiguration.java:270)
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$MCRRoot.get(MCRConfiguration.java:71)
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$MCRRoot.<clinit>(MCRConfiguration.java:81)
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getMCRRoot(MCRConfiguration.java:86)
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ModuleDir.<clinit>(MCRConfiguration.java:60)
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getModuleDir(MCRConfiguration.java:65)
at com.mathworks.toolbox.javabuilder.internal.MWMCR.<clinit>(MWMCR.java:1503)
at BCI.BCIMCRFactory.newInstance(BCIMCRFactory.java:60)
at BCI.BCIMCRFactory.newInstance(BCIMCRFactory.java:71)
at BCI.Class1.<init>(Class1.java:104)
at bci.pruebaEEG.main(pruebaEEG.java:24)

我已将 dll 的路径包含到我的 PATH 环境变量中:

C:\Program Files (x86)\Matlab\Matklab Runtime\v85\runtime\win32

用于创建先前函数的 Matlab 版本是 R2015a(32 位)并编译 Java 包,jdk 1.7(它们应该是兼容的)。

谁能帮帮我??

提前致谢!

好的,我找到了我的 dll 问题的解决方案。因此,如果其他人也不断收到此 "Failed to find the required library mclmcrrt8_5.dll on java.library.path." 错误并且已经遵循此 steps,请检查您的 jre 版本是否与 matlab 编译器 (MCR) 的 32/64 位版本相匹配

我是 运行 我的 Java 应用程序来自 Eclipse 和傻瓜我没有意识到我使用的是 (x64) jre7 而不是 (x86)。我只需要下载正确的一个并将其添加到 JRE 系统库中即可。现在一切运行完美。