操作系统是Linux Ubuntu 16.04 LTS。
(应用程序在Windows上运行得非常好,安装Matlab Compiler SDK后我无需进行任何配置)
我正在使用Java编写一个Web应用程序,它还调用了一些使用Matlab编写的函数,需要安装Matlab Compiler SDK。安装完后,它提示我将这个路径/usr/local/MATLAB/MATLAB_Runtime/v901/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v901/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v901/sys/os/glnxa64:
添加到LD_LIBRARY_PATH
变量的末尾,我已经按照要求完成了。
export LD_LIBRARY_PATH=/usr/local/MATLAB/MATLAB_Runtime/v901/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v901/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v901/sys/os/glnxa64:
但是,当我尝试在Netbeans中运行Web应用程序时,为什么会不断出现这个错误?
java.lang.UnsatisfiedLinkError: Failed to find the required library libmwmclmcrrt.so.9.0.1 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.
libmwmclmcrrt.so.9.0.1
位于 /usr/local/MATLAB/MATLAB_Runtime/v901/runtime/glnxa64
目录中。
我还添加了-Djava.library.path
,指向上面的3个目录条目,看看是否有帮助,但实际上它并没有起任何作用。
我在这里读了几篇文章,但似乎都没有解决问题。
- JNI:找到库路径,但方法未找到(java.lang.UnsatisfiedLinkError)
- 即使设置 -Djava.library.path,仍然出现 java.lang.UnsatisfiedLinkError
我该如何解决这个问题?顺便说一下,这是一个Web应用程序。
showSettings
中,输出路径没有在:
上分割?那么path.separator
是什么呢? - vsminkovpath.separator
是:
,因为这是 Linux 系统,所以会在:
上进行分割。java.library.path
显示为/usr/local/MATLAB/MATLAB_Runtime/v901/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v901/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v901/sys/os/glnxa64:
,如果没有冒号:
,则不会进行分割。 - Trash CanLD_LIBRARY_PATH
,然后使用相同的终端从命令行启动你的IDE,这样,你导出变量LD_LIBRARY_PATH
的终端会话将被保留。我不确定这是否有效,因为我没有尝试过。 - Trash Can/etc/ld.so.conf.d/
下 - 这破坏了我的系统范围内的LD_LIBRARY_PATH
, 2.) 在.bashrc
中设置LD_LIBRARY_PATH
,这也没有帮助, 3.) 在idea.vmoptions
下设置LD_LIBRARY_PATH
,也没有帮助。似乎在Linux上存在MCR问题,或者正确的配置未在mathworks网站上记录。 - Jay