java.lang.UnsatisfiedLinkError 即使设置了 LD_LIBRARY_PATH 和 -Djava.library.path

java.lang.UnsatisfiedLinkError even though LD_LIBRARY_PATH and -Djava.library.path were set

OS 是 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 个目录条目,看看它是否有帮助,但它根本没有任何好处。

看了几个帖子,好像都没有解决。

  1. JNI: Library is Found on Path, but Method is not (java.lang.UnsatisfiedLinkError)
  2. java.lang.UnsatisfiedLinkError even on setting -Djava.library.path

我该如何解决这个问题?顺便说一句,这是一个网络应用程序

[ 在 Mac OS High Sierra 版本 10.13.5 (17F77) 上测试过,应该与 Linux 相似]

我所做的是在启动应用程序服务器时(在我的例子中是 Payara)。我像这样 javabuilder.jar 提供了路径

对于完整的 Payara

asadmin deploy --libraries /path/to/javabuilder.jar app.war

对于 Payara Micro

java -jar payara-micro.jar --deploy app.war --addlibs /path/to/javabuilder.jar

注意/path/to/javabuilder.jarjavabuilder.jar 在目录 MATLAB_HOME/MATLAB_Runtime/SOME_VERSION/toolbox/javabuilder/jar/javabuilder.jar 中的位置,复制此 javabuilder.jar 文件并引用它会失败并出现相同的错误。它 必须 是其原始路径才能正常工作。不知道为什么