daerqq 2013-10-16 13:30 采纳率: 0%
浏览 1217

java调用MATLAB打包的jar,Java application调用成功,jsp调用失败,不知道为什么

报错如下:
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也安装了,这个问题困扰了我很长时间,希望能得各位的帮助,谢谢

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-08-20 17:01
    关注

    该回答引用ChatGPT-3.5,仅为您供参考,不保证完全正确
    这个错误提示表明在你的JSP应用程序中,MATLAB调用所需的库文件 mclmcrrt710.dll 没有被正确加载。这通常是由于库文件的路径设置不正确导致的。以下是一些可能的解决方法:

    1. 检查库文件路径设置:
      确保在你的JSP应用程序中,库文件的路径被正确设置。你可以使用以下方法之一来设置库文件路径:

      • 在系统的环境变量 java.library.path 中添加包含 mclmcrrt710.dll 的文件夹路径。
      • 在你的JSP代码中,在调用MATLAB之前,使用 System.setProperty("java.library.path", "/path/to/folder"); 来动态设置库文件路径。
    2. 检查文件权限:
      确保 mclmcrrt710.dll 文件及其所在的文件夹对于你的JSP应用程序具有足够的访问权限。

    3. 确认MATLAB和JSP运行环境兼容性:
      确保你使用的MATLAB版本和MCR与你的JSP应用程序兼容。根据你提供的信息,你使用的MATLAB版本是R2009a,这可能导致与较新版本的Java和其他组件不兼容。你可能需要尝试更换更新的MATLAB版本或者考虑更新你的应用程序以适应新的环境。

    4. 查看日志文件:
      在你的JSP应用程序中捕获和记录更多的日志信息,以便更好地理解问题所在。你可以使用Java的日志库或者直接输出信息到控制台。

    5. 尝试其他解决方案:
      如果上述方法都没有解决问题,你可能需要与MathWorks的支持团队联系,他们可以为你提供更详细的帮助,特别是在涉及到特定版本和环境的问题时。

    最后,确保你的JSP应用程序以及与之相关的配置都经过仔细检查,以确定是否有任何可能导致库文件加载错误的问题。这可能需要一些试错,但是通过排除一些常见问题,你应该能够找到解决方案。


    该回答引用NewBing,仅为您供参考,不保证完全正确
    根据我搜索的结果,这个错误可能是由以下原因导致的:

    • 您没有安装正确版本的MATLAB Compiler Runtime (MCR)。您需要安装与您的MATLAB Compiler版本相对应的MCR版本。您可以在生成应用程序的MATLAB安装目录下找到MCR安装程序。例如,如果您使用的是MATLAB R2009a,那么您需要安装mclmcrrt710.dll文件,它位于以下路径¹:

    $MATLABROOT\\toolbox\\compiler\\deploy\\win32\\mcrInstaller.exe

    或者

    $MATLABROOT\\toolbox\\compiler\\deploy\\win64\\mcrInstaller.exe

    其中$MATLABROOT是您机器上的MATLAB根目录,可以通过在MATLAB命令提示符下输入matlabroot来返回。

    • 您没有将mclmcrrt710.dll文件添加到java.library.path中。您需要将该文件所在的目录添加到系统环境变量PATH中。例如,如果您安装了MCR 7.10,那么您需要将以下目录添加到PATH中²:

    $MCRROOT\\v710\\runtime\\win32

    或者

    $MCRROOT\\v710\\runtime\\win64

    其中$MCRROOT是您在安装MCR过程中选择的MATLAB Compiler Runtime根目录。这通常默认为类似于C:\\Program Files\\MATLAB\\MATLAB Compiler Runtime的路径。

    • 您的项目工程的JDK版本与MATLAB的JDK版本不一致。您需要确保两者使用相同版本的JDK,否则程序运行会报错³。您可以通过在MATLAB命令行窗口中输入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.

    评论

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名