1

我正在使用 Matlab 的 MCR 进行某些图像处理功能的服务器中部署 Java EE 项目。几个月来我一直在尝试这个,但我无法让它工作。问题是当它要使用 MCR 时,它找不到 .so 库。我收到了这个错误:

javax.servlet.ServletException:无法在 java.library.path 上找到 MATLAB builder JA 所需的库 libmwmclmcrrt.so.7.13。此库通常与 MATLAB 或 MCR 一起安装,它的缺失可能表明该安装或当前路径配置存在问题。该组件尝试使用的 MCR 版本是 7.13。

根本原因:

java.lang.UnsatisfiedLinkError:无法在 java.library.path 上找到 MATLAB Builder JA 所需的库 libmwmclmcrrt.so.7.13。此库通常与 MATLAB 或 MCR 一起安装,它的缺失可能表明该安装或当前路径配置存在问题。该组件尝试使用的 MCR 版本是:7.13。

服务器使用:

  • Ubutuntu 64 位。
  • 网豆 7.4
  • 玻璃鱼
  • Java 6 开发工具包
  • 首先它使用 MCR 7.13 现在它使用 MCR 8.1

我已经尝试过的事情:

  • 使用导出设置环境变量 LD_LIBRARY_PATH 和 XAPPLERSDIR:

导出 LD_LIBRARY_PATH=/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/os/glnxa64: /usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64/native_threads:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/ amd64/服务器:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64:$LD_LIBRARY_PATH

导出 XAPPLRESDIR=/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/X11/app-defaults

  • 使用 setenv 设置环境变量 LD_LIBRARY_PATH 和 XAPPLERSDIR:

未找到命令 setenv

  • 编辑 ld.so.conf 文件并运行 ldconfig
  • 在 glassfish 中添加 -Djava.library.path=my/path/to/so
  • 在 Netbeans 中添加 -Djava.library.path=my/path/to/so 就像这里说的: 在 netbeans 中为 .dll/.so 文件提供 'java.library.path'
  • 我尝试在 Netbeans 中设置环境变量,就像在这篇文章中所说:如何在 Netbeans 中设置环境变量? 但我找不到“操作”
  • 我试图在 Netbeans 中设置环境变量,就像这篇文章中所说的那样:https ://askubuntu.com/questions/267071/ld-library-path-specification 但我找不到“环境”

我尝试了很多我不记得的东西,但它们都不起作用,它一直显示相同的错误(现在是 8.1 版而不是 7.13 版)。如果有任何帮助,我将不胜感激。

4

1 回答 1

2

我在使用 Linux、Java EE 和 Matlab 时遇到了同样的问题。我的解决方案是:

  • 打开终端
  • 以root身份登录$ su并输入密码
  • 编辑 /etc/环境$ gedit /etc/enviroment
  • 添加所需的变量,在我们的例子中:

LD_LIBRARY_PATH="/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/os/glnxa64: /usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64/native_threads:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/ amd64/服务器:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64"

XAPPLRESDIR="/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/X11/app-defaults"

  • 保存文件并重新启动。
  • 以 root 身份启动服务器。

您的其他解决方案(例如导出)发生的情况是,您创建的变量与 GlassFish 服务器之间不存在可见性。在环境中设置变量将确保您可以从任何其他程序/进程中看到它们。

于 2014-09-06T15:26:19.037 回答