Matlab Runtime 在Java开发中出现的一些错误

Windows配置

Windows中的环境未配置

Exception in thread "main" java.lang.UnsatisfiedLinkError: Failed to find the required library mclmcrrt9_11.dll on java.library.path.
This library is typically installed along with MATLAB or the MATLAB Runtime. Its absence may indicate an issue with that installation or 
the current path configuration, or a mismatch with the architecture of the Java interpreter on the path.
MATLAB Runtime version this component is attempting to use: 9.11.
Java interpreter architecture: win64.

按照matlab runtime 官网下载安装后配置完即可

MATLAB Runtime - MATLAB Compiler - MATLAB

如果安装完环境还不能用,就配置一下环境变量:

再不济,重启一下

部署到Linux上:

打包

遇到了一个问题,项目里既有maven的包,也有手动导入的包,需要先把手动导入到放进本地仓库:

mvn install:install-file -Dfile=<包的位置> -DgroupId=<groupId> -DartifactId=<artifactId > -Dversion=<version> -Dpackaging=jar

然后在pom.xml中按照依赖引入

<dependency>
<groupId>com.test.javabuilder</groupId>
<artifactId>javabuilder</artifactId>
<version>1.0</version>
</dependency>

<dependency>
<groupId>com.test.SignalDecompositionJava</groupId>
<artifactId>SignalDecompositionJava</artifactId>
<version>1.0</version>
</dependency>

配置环境

下载:

wget https://ssd.mathworks.com/supportfiles/downloads/R2021b/Release/7/deployment_files/installer/complete/glnxa64/MATLAB_Runtime_R2021b_Update_7_glnxa64.zip

解压:

unzip MATLAB_Runtime_R2021b_Update_7_glnxa64.zip

然后配置环境:

export PATH=/usr/local/MATLAB/MATLAB_Runtime/v911/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/MATLAB/MATLAB_Runtime/v911/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v911/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v911/sys/os/glnxa64:$LD_LIBRARY_PATH

又有新报错:
解决方案:

禁用 Java 的辅助功能支持:

可以通过修改 accessibility.properties 文件来禁用它。对于 Java 8,该文件通常位于 jre/libjdk/jre/lib 目录下。

将assistive_technologies=org.GNOME.Accessibility.AtkWrapper注释

#assistive_technologies=org.GNOME.Accessibility.AtkWrapper


又遇到新错误:

 ERROR 46184 --- [p-nio-80-exec-5] o.a.c.c.C.[.[.[/].[dispatcherServlet]                                                                                                                            : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Re                                                                                                                        quest processing failed; nested exception is com.mathworks.toolbox.javabuilder.MWException: An er                                                                                                                        ror occurred while initializing the component.
Error loading /usr/local/MATLAB/MATLAB_Runtime/v911/bin/glnxa64/matlab_startup_plugins/matlab_gra                                                                                                                        phics_ui/mwuixloader.so. libXt.so.6: cannot open shared object file: No such file or directory: S                                                                                                                        uccess: Success] with root cause

com.mathworks.toolbox.javabuilder.MWException: An error occurred while initializing the component                                                                                                                        .
Error loading /usr/local/MATLAB/MATLAB_Runtime/v911/bin/glnxa64/matlab_startup_plugins/matlab_gra                                                                                                                        phics_ui/mwuixloader.so. libXt.so.6: cannot open shared object file: No such file or directory: S                                                                                                                        uccess: Success
        at com.mathworks.toolbox.javabuilder.internal.MWMCR.mclInitializeComponentInstance(Native                                                                                                                         Method) ~[javabuilder-1.0.jar!/:na]
        at com.mathworks.toolbox.javabuilder.internal.MWMCR.access$700(MWMCR.java:33) ~[javabuild                                                                                                                        er-1.0.jar!/:na]
        at com.mathworks.toolbox.javabuilder.internal.MWMCR$6.mclInitializeComponentInstance(MWMC                                                                                                                        R.java:903) ~[javabuilder-1.0.jar!/:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_392]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8                                                                                                                        .0_392]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)                                                                                                                         ~[na:1.8.0_392]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_392]
        at com.mathworks.toolbox.javabuilder.internal.MWMCR$2.invoke(MWMCR.java:785) ~[javabuilde                                                                                                                        r-1.0.jar!/:na]
        at com.sun.proxy.$Proxy59.mclInitializeComponentInstance(Unknown Source) ~[na:na]
        at com.mathworks.toolbox.javabuilder.internal.MWMCR.newInstance(MWMCR.java:646) ~[javabui                                                                                                                        lder-1.0.jar!/:na]
        at SignalDecompositionJava.SignalDecompositionJavaMCRFactory.newInstance(SignalDecomposit                                                                                                                        ionJavaMCRFactory.java:44) ~[SignalDecompositionJava-1.0.jar!/:na]
        at SignalDecompositionJava.SignalDecompositionJavaMCRFactory.newInstance(SignalDecomposit                                                                                                                        ionJavaMCRFactory.java:55) ~[SignalDecompositionJava-1.0.jar!/:na]
        at SignalDecompositionJava.SignalDecomposition.<init>(SignalDecomposition.java:64) ~[Sign                                                                                                                        alDecompositionJava-1.0.jar!/:na]
        at com.example.web.controller.FileController.uploadFile(FileController.java:50) ~[classes                                                                                                                        !/:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_392]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8                                                                                                                        .0_392]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)                                                                                                                         ~[na:1.8.0_392]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_392]
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandle                                                                                                                        rMethod.java:205) ~[spring-web-5.3.23.jar!/:5.3.23]
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(Invocab                                                                                                                        leHandlerMethod.java:150) ~[spring-web-5.3.23.jar!/:5.3.23]
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.in                                                                                                                        vokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar!/:5.3.23]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.inv                                                                                                                        okeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar!/:5.3.23]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.han                                                                                                                        dleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar!/:5.3.23]
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(Abstrac                                                                                                                        tHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar!/:5.3.23]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:10                                                                                                                        71) ~[spring-webmvc-5.3.23.jar!/:5.3.23]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964                                                                                                                        ) ~[spring-webmvc-5.3.23.jar!/:5.3.23]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:                                                                                                                        1006) ~[spring-webmvc-5.3.23.jar!/:5.3.23]
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[s                                                                                                                        pring-webmvc-5.3.23.jar!/:5.3.23]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) ~[tomcat-embed-core-9.0.6                                                                                                                        8.jar!/:na]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[                                                                                                                        spring-webmvc-5.3.23.jar!/:5.3.23]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.6                                                                                                                        8.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChai                                                                                                                        n.java:227) ~[tomcat-embed-core-9.0.68.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:1                                                                                                                        62) ~[tomcat-embed-core-9.0.68.jar!/:na]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-                                                                                                                        websocket-9.0.68.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChai                                                                                                                        n.java:189) ~[tomcat-embed-core-9.0.68.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:1                                                                                                                        62) ~[tomcat-embed-core-9.0.68.jar!/:na]
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFil                                                                                                                        ter.java:100) ~[spring-web-5.3.23.jar!/:5.3.23]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java                                                                                                                        :117) ~[spring-web-5.3.23.jar!/:5.3.23]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChai                                                                                                                        n.java:189) ~[tomcat-embed-core-9.0.68.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:1                                                                                                                        62) ~[tomcat-embed-core-9.0.68.jar!/:na]
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.ja                                                                                                                        va:93) ~[spring-web-5.3.23.jar!/:5.3.23]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java                                                                                                                        :117) ~[spring-web-5.3.23.jar!/:5.3.23]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChai                                                                                                                        n.java:189) ~[tomcat-embed-core-9.0.68.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:1                                                                                                                        62) ~[tomcat-embed-core-9.0.68.jar!/:na]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncod                                                                                                                        ingFilter.java:201) ~[spring-web-5.3.23.jar!/:5.3.23]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java                                                                                                                        :117) ~[spring-web-5.3.23.jar!/:5.3.23]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChai                                                                                                                        n.java:189) ~[tomcat-embed-core-9.0.68.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:1                                                                                                                        62) ~[tomcat-embed-core-9.0.68.jar!/:na]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[                                                                                                                        tomcat-embed-core-9.0.68.jar!/:na]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [to                                                                                                                        mcat-embed-core-9.0.68.jar!/:na]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)                                                                                                                         [tomcat-embed-core-9.0.68.jar!/:na]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) [tomcat-                                                                                                                        embed-core-9.0.68.jar!/:na]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-e                                                                                                                        mbed-core-9.0.68.jar!/:na]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomc                                                                                                                        at-embed-core-9.0.68.jar!/:na]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) [tomcat-em                                                                                                                        bed-core-9.0.68.jar!/:na]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) [tomcat-emb                                                                                                                        ed-core-9.0.68.jar!/:na]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomc                                                                                                                        at-embed-core-9.0.68.jar!/:na]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893                                                                                                                        ) [tomcat-embed-core-9.0.68.jar!/:na]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) [t                                                                                                                        omcat-embed-core-9.0.68.jar!/:na]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomca                                                                                                                        t-embed-core-9.0.68.jar!/:na]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:11                                                                                                                        91) [tomcat-embed-core-9.0.68.jar!/:na]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:6                                                                                                                        59) [tomcat-embed-core-9.0.68.jar!/:na]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [to                                                                                                                        mcat-embed-core-9.0.68.jar!/:na]
        at java.lang.Thread.run(Thread.java:750) [na:1.8.0_392]

Java 应用程序在尝试初始化组件时遇到了问题,具体来说是在加载 /usr/local/MATLAB/MATLAB_Runtime/v911/bin/glnxa64/matlab_startup_plugins/matlab_graphics_ui/mwuixloader.so 时。该错误指出缺少 libXt.so.6 库。这个库是 X Window 系统的一部分,通常用于提供图形用户界面。

这个问题通常是由于系统缺少 X11 图形库导致的。在大多数 Linux 发行版中,可以通过安装 libxt6 包来解决此问题。

安装 libXt:
  • 对于基于 Debian/Ubuntu 的系统,运行:
    sudo apt-get update sudo apt-get install libxt6

搞定结束!

  • 45
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值