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/lib
或 jdk/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
搞定结束!