我创建了一个Matlab函数,我想从一个Java应用程序中调用它。由于我没有在这台机器上安装matlab,所以我使用Matlab (版本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的path:
C:\程序文件(x86)\Matlab\Matklab运行时\V85\运行时\win32 32
用于创建之前函数的Matlab版本是R2015a (32位),并编译Java,JDK1.7(它们应该是兼容的)。
有谁可以帮我??
提前感谢!
发布于 2016-05-03 09:41:22
好吧,我找到了解决dll问题的方法。因此,如果其他人也在不断地获取该库,则“未能在java.library.path上找到所需的库java.library.path”。错误并已遵循此步骤,请检查您的jre版本是否与matlab编译器的32/64位版本相匹配。
我在Eclipse上运行我的Java应用程序,我没有意识到我使用的是(x64) jre7而不是(x86)。我只需下载正确的一个并将其添加到JRE系统库。现在一切都完美无缺。
https://stackoverflow.com/questions/36983029
复制相似问题