繁体   English   中英

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

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

操作系统是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:在路径上找到了库,但是没有找到方法(java.lang.UnsatisfiedLinkError)
  2. java.lang.UnsatisfiedLinkError即使设置-Djava.library.path

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

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

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

对于Payara Full

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.jar是位置javabuilder.jar目录内的MATLAB_HOME/MATLAB_Runtime/SOME_VERSION/toolbox/javabuilder/jar/javabuilder.jar ,复制这个javabuilder.jar鱼贯而出,并引用它将失败的同样的错误。 必须是其工作的原始路径。 不知道为什么

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM