今天在做项目的时候,先是将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不一致导致的。