【发布时间】:2016-08-10 00:47:27
【问题描述】:
操作系统是 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: Library is Found on Path, but Method is not (java.lang.UnsatisfiedLinkError)
- java.lang.UnsatisfiedLinkError even on setting -Djava.library.path
我该如何解决这个问题?顺便说一句,这是一个网络应用程序
【问题讨论】:
-
您能否验证您是否正确设置了
java.library.path?如果运行java -Djava.library.path=<your paths> -XshowSettings:properties,java.library.path属性的值是多少? -
@vsminkov 它只返回我传递的任何内容,即
/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: -
所以...在
showSettings输出路径不会在:上拆分?那么path.separator是什么? -
path.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:没有冒号: -
这听起来很奇怪。 64/32位库有没有可能出现混乱?
标签: java matlab java-native-interface matlab-compiler