IDE运行Gurobi Java代码遇UnsatisfiedLinkError但终端运行正常求助
Gurobi Java接口IDE运行报错:UnsatisfiedLinkError
问题详情
已按Gurobi安装文档在.bashrc中配置环境变量:
export GUROBI_HOME="/opt/gurobi1001/linux64" export PATH="${PATH}:${GUROBI_HOME}/bin" export LD_LIBRARY_PATH="${GUROBI_HOME}/lib"
终端进入测试代码目录执行make run_java时所有代码运行正常,但在Eclipse(或IntelliJ)中运行相同代码时,抛出以下错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/faisal/gurobi1001/linux64/lib/libGurobiJni100.so: libgurobi100.so: cannot open shared object file: No such file or directory at java.base/jdk.internal.loader.NativeLibraries.load(Native Method) at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174) at java.base/jdk.internal.loader.NativeLibraries.findFromPaths(NativeLibraries.java:315) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:287) at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2422) at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:818) at java.base/java.lang.System.loadLibrary(System.java:1989) at gurobi.GurobiJni.<clinit>(GurobiJni.java:297) at gurobi.GRBEnv.<init>(GRBEnv.java:108) at test.Mip1.main(Mip1.java:20)
已尝试操作
- 将
gurobi.jar添加到项目类路径(尝试过模块路径,无效) - 为
gurobi.jar配置本地库位置 - 确认
.bashrc配置有效(终端运行正常)
环境信息
openjdk 17.0.5 2022-10-18 OpenJDK Runtime Environment (build 17.0.5+8-Ubuntu-2ubuntu122.04) OpenJDK 64-Bit Server VM (build 17.0.5+8-Ubuntu-2ubuntu122.04, mixed mode, sharing)
IDE已正确识别JavaSE-17版本。
解决方案
1. 在IDE运行配置中手动添加环境变量
IDE默认不会加载.bashrc的环境变量,需手动注入LD_LIBRARY_PATH:
Eclipse操作步骤:
- 右键项目 → Run As → Run Configurations
- 选中目标Java Application配置,切换到Environment标签
- 点击New,添加变量名
LD_LIBRARY_PATH,值为/opt/gurobi1001/linux64/lib(与.bashrc中GUROBI_HOME一致) - 点击Apply后重新运行
IntelliJ操作步骤:
- 顶部菜单Run → Edit Configurations
- 选中目标运行配置,点击Environment variables后的编辑按钮
- 添加条目
LD_LIBRARY_PATH=/opt/gurobi1001/linux64/lib - 保存配置后重新运行
2. 从终端启动IDE
直接在bash终端中启动IDE(输入eclipse或idea命令),此时IDE会加载.bashrc中的环境变量,无需额外配置。
3. 检查本地库路径一致性
注意错误日志中显示的Gurobi路径是/home/faisal/gurobi1001,但.bashrc配置的是/opt/gurobi1001,需确认:
- IDE中
gurobi.jar的本地库配置路径是否与实际安装路径一致 - 本地Gurobi安装目录是否存在路径不一致的情况,统一路径后重新配置
内容的提问来源于stack exchange,提问作者Sergio
相关产品推荐
相关产品推荐

