我创建了一个Matlab的函数,我想从Java App中调用它。由于我没有在这台机器上安装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)
我已经将我的PATH环境的变量包含在dll的路径中了:
C:\ Program Files(x86)\ Matlab \ Matklab Runtime \ v85 \ runtime \ win32
用于创建上一个函数的Matlab版本是R2015a(32位)并编译Java包,jdk 1.7(它们应该是兼容的)。
任何人都可以帮助我吗?
提前致谢!
答案 0 :(得分:0)
好的,我能够找到解决我的dll问题的方法。因此,如果其他人也在不断地获取“无法在java.library.path上找到所需的库mclmcrrt8_5.dll”。错误并且已经遵循此steps,请检查您的jre版本是否与matlab编译器(MCR)的32/64位版本匹配
我从Eclipse运行我的Java应用程序并且愚弄我,我没有意识到我使用的是(x64)jre7而不是(x86)。我只需要下载正确的一个并将其添加到JRE系统库中。现在一切都运行得很好。