报错如下:
java.lang.UnsatisfiedLinkError: Failed to find the library mclmcrrt710.dll, required by MATLAB Builder JA, on java.library.path
com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.get(MCRConfiguration.java:123)
com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.<clinit>(MCRConfiguration.java:126)
com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getProxyLibraryDir(MCRConfiguration.java:131)
com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$IsInstalledMCR.get(MCRConfiguration.java:33)
com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$IsInstalledMCR.<clinit>(MCRConfiguration.java:41)
com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.isInstalledMCR(MCRConfiguration.java:46)
com.mathworks.toolbox.javabuilder.internal.MWMCR.<clinit>(MWMCR.java:1442)
test.TestMCRFactory.<clinit>(TestMCRFactory.java:100)
test.myaddclass.<init>(myaddclass.java:62)
com.slzyjc.bean.a.main(a.java:23)
org.apache.jsp.a_jsp._jspService(a_jsp.java:75)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
我的处理器是Intel,jdk是1.6,MATLAB是R2009a,MCR也安装了,这个问题困扰了我很长时间,希望能得各位的帮助,谢谢
该回答引用ChatGPT-3.5,仅为您供参考,不保证完全正确
这个错误提示表明在你的JSP应用程序中,MATLAB调用所需的库文件 mclmcrrt710.dll 没有被正确加载。这通常是由于库文件的路径设置不正确导致的。以下是一些可能的解决方法:
检查库文件路径设置:
确保在你的JSP应用程序中,库文件的路径被正确设置。你可以使用以下方法之一来设置库文件路径:
java.library.path
中添加包含 mclmcrrt710.dll 的文件夹路径。System.setProperty("java.library.path", "/path/to/folder");
来动态设置库文件路径。检查文件权限:
确保 mclmcrrt710.dll 文件及其所在的文件夹对于你的JSP应用程序具有足够的访问权限。
确认MATLAB和JSP运行环境兼容性:
确保你使用的MATLAB版本和MCR与你的JSP应用程序兼容。根据你提供的信息,你使用的MATLAB版本是R2009a,这可能导致与较新版本的Java和其他组件不兼容。你可能需要尝试更换更新的MATLAB版本或者考虑更新你的应用程序以适应新的环境。
查看日志文件:
在你的JSP应用程序中捕获和记录更多的日志信息,以便更好地理解问题所在。你可以使用Java的日志库或者直接输出信息到控制台。
尝试其他解决方案:
如果上述方法都没有解决问题,你可能需要与MathWorks的支持团队联系,他们可以为你提供更详细的帮助,特别是在涉及到特定版本和环境的问题时。
最后,确保你的JSP应用程序以及与之相关的配置都经过仔细检查,以确定是否有任何可能导致库文件加载错误的问题。这可能需要一些试错,但是通过排除一些常见问题,你应该能够找到解决方案。
该回答引用NewBing,仅为您供参考,不保证完全正确
根据我搜索的结果,这个错误可能是由以下原因导致的:
$MATLABROOT\\toolbox\\compiler\\deploy\\win32\\mcrInstaller.exe
或者
$MATLABROOT\\toolbox\\compiler\\deploy\\win64\\mcrInstaller.exe
其中$MATLABROOT
是您机器上的MATLAB根目录,可以通过在MATLAB命令提示符下输入matlabroot
来返回。
$MCRROOT\\v710\\runtime\\win32
或者
$MCRROOT\\v710\\runtime\\win64
其中$MCRROOT
是您在安装MCR过程中选择的MATLAB Compiler Runtime根目录。这通常默认为类似于C:\\Program Files\\MATLAB\\MATLAB Compiler Runtime
的路径。
version -java
来查看MATLAB使用的JDK版本,然后在IDEA中设置相同版本的JDK。源: 与必应的对话, 2023/8/20
(1) Matlab代码打包成jar包供java调用 - CSDN博客. https://blog.csdn.net/liyuanjunfrank/article/details/109813541.
(2) matlab程序打包成jar包,IDEA实现java调用matlab程序 - CSDN博客. https://blog.csdn.net/fengzhimohan/article/details/83061800.
(3) Java调用打包成jar的MATLAB函数出错 - 百度知道. https://zhidao.baidu.com/question/599325271.html.
(4) matlab怎么打包jar出现错误,将MATLAB程序打包为jar文件的时候遇到的问题_天荒地脑的博客-CSDN博客. https://blog.csdn.net/weixin_35056480/article/details/115814264.
(5) Error message (mclmcrrt710.dll file not found) - MathWorks. https://www.mathworks.com/matlabcentral/answers/40115-error-message-mclmcrrt710-dll-file-not-found.
(6) Why do I receive an error regarding missing mclmcrrt7x.dll when I run .... https://www.mathworks.com/matlabcentral/answers/94298-why-do-i-receive-an-error-regarding-missing-mclmcrrt7x-dll-when-i-run-my-stand-alone-application-com.
(7) How To Fix Mclmcrrt710.dll Not Found (Missing) Errors - Solvusoft. https://www.solvusoft.com/en/files/missing-not-found-error/dll/windows/windows-software-developer/third-party-application/mclmcrrt710-dll/.
(8) Error message (mclmcrrt710.dll file not found) - MathWorks. https://la.mathworks.com/matlabcentral/answers/40115-error-message-mclmcrrt710-dll-file-not-found.