当前位置: 首页 > 知识库问答 >
问题:

UnsatisfiedLinkError:没有GurobiJni/Tomcat

刘瀚
2023-03-14
declare -x GRB_LICENSE_FILE="/home/suporte/gurobi.lic"
declare -x GUROBI_HOME="/opt/gurobi752/linux64"
declare -x LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}:\${GUROBI_HOME}/lib"
declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:\$JAVA_HOME/bin:\$GUROBI_HOME/bin"
Exception in thread "Thread-14" java.lang.UnsatisfiedLinkError: no GurobiJni75 in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)
    at gurobi.GurobiJni.<clinit>(GurobiJni.java:243)
    at gurobi.GRBEnv.<init>(GRBEnv.java:41)
    at gurobi.GRBEnv.<init>(GRBEnv.java:31)
    at br.com.lapin.otimizacao.model.ModelCorteGurobi.<init>(ModelCorteGurobi.java:43)

这里是脚本输出...

共有1个答案

鲁泰宁
2023-03-14

有什么解决问题的办法吗?

您可以将LD_LIBRARY_PATH设置为指向存储.so文件的Gurobi目录,以及存储.jar文件的目录。

您还可以通过复制或链接Gurobi jar文件,使其可以从Tomcat访问。

ln -sv $GUROBI_HOME/lib/gurobi.jar $TOMCAT_HOME/lib/
declare -x LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${GUROBI_HOME}/lib"
declare -x LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}:\${GUROBI_HOME}/lib"
<%@ page import="java.util.Properties" %>
<%@ page import="java.util.Set" %>

<%
Properties p = System.getProperties();

Set<String> keys = p.stringPropertyNames();
for (String key : keys)
  out.println(key + " : " + p.getProperty(key));

%>

从您的调试JSP中,我们看到ld.library.path正确地指向您的GUROBI lib目录。我们可以尝试为java.library.path添加一个系统属性。在Tomcat安装中,编辑或创建包含以下内容的bin/setenv.sh文件:

CATALINA_OPTS="-Djava.library.path=/opt/gurobi752/linux64/lib/"

对这个建议的解释可以在这里阅读。

顺便说一下,我不知道您将声明-x放在哪里,但将它们存储在bin/setenv.sh中是合法的

 类似资料:
  • 是否有任何surefire或TeamCity选项来配置运行时JRE? 这是我当前的可靠配置:

  • 我试图按照以下教程构建我的第一个JNI应用程序:https://www3.ntu.edu.sg/home/ehchua/programming/java/javanativeInterface.html 问题摘要:在运行我的应用程序时,我得到一个java.lang.UnsatisfiedLinkError错误。 首先,我编写了类hellojni.java: 这个类我用:javac HelloJNI

  • 问题内容: 我在桌面上遇到LibGDX的问题。尝试启动应用程序时,我始终收到以下错误: 我将以下库添加到我的项目中: gdx.jar gdx-sources.jar gdx-natives.jar gdx-backend-lwjgl.jar gdx-backend-lwjgl-natives.jar 我想念什么吗? 我已经搜索了很多东西,但是我发现的一切都是针对Android的,它告诉我将arm文

  • 问题内容: 我是Sigar的新手。我想运行一个简单的测试,以了解如何监视系统。 我添加了并作为外部库,但是当我运行它时,遇到了这个错误: 这是我的代码: 任何帮助,将不胜感激。 问题答案: 我了解这个问题! 我必须使用以下JVM参数: 在“运行配置”中的“参数”选项卡中,“ VM参数”在eclipse中,而sigar-bin / lib的竞争对象在lib文件夹中。

  • 问题内容: 我编写了一个简单的Java程序,该程序将字节发送到并行端口,该程序使用.dll以及其他两个类(pPort.java和ioPort.java)来完成此操作,并且运行良好。 但是,我开始在NetBeans IDE上制作另一个具有类似功能的程序。它可以完美地编译,但是当我运行它时,我得到: 据我了解,它无法调用我放在System32上的.dll文件。但是我不明白为什么,因为另一个基本相同但在

  • 线程“main”Java.lang.UnsatisfiedLinkError中出现异常:c:\users\jaiserpe\appdata\local\temp\pdnative7141399841793639340.dll:在Java.lang.ClassLoader$nativelibrary.load(本机方法)在Java.lang.ClassLoader.LoadLibrary0(clas