今天在做项目的时候,先是将MATLAB程序打包成jar包,然后再Java程序里调用MATLAB,结果运行程序的时候出错,具体错误提示为:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Failed to find the library mclmcrrt8_3.dll, required by MATLAB Builder JA, on java.library.path.
This library is typically installed along with MATLAB or the MCR, its absence may indicate an issue with that installation or the current path configuration.The MCR version that this component is trying to use is: 8.3.
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.get(MCRConfiguration.java:239)
at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.<clinit>(MCRConfiguration.java:245)at com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getProxyLibraryDir(MCRConfiguration.java:250)
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:1462)
at processall.ProcessallMCRFactory.newInstance(ProcessallMCRFactory.java:49)
at processall.ProcessallMCRFactory.newInstance(ProcessallMCRFactory.java:60)
at processall.Procthreedata.<init>(Procthreedata.java:63)
at cn.pillow.dataprocess.onlybhdata.main(onlybhdata.java:30)
具体解决方案为:
经过检查,是我的项目中的jdk与MATLAB中的jdk不一致导致的。
本文介绍了一个在使用MATLAB与Java进行交互时遇到的问题:由于MATLAB和项目中使用的JDK版本不一致导致无法找到必要的库文件。通过调整使两个环境的JDK版本保持一致解决了该问题。
1606

被折叠的 条评论
为什么被折叠?



