You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Eclipse中将共享库文件添加至java.library.path路径

问题描述

我正在使用Ubuntu 20.04系统,运行的Eclipse版本为2019-12,JDK为OpenJDK 8(我的当前项目要求使用8版本)。该Java项目可以通过以下脚本正常执行:
正常执行脚本

我在Eclipse中操作时,想要给项目添加一个外部JAR文件,但始终抛出如下异常:
报错异常

我已经尝试了以下操作:

  1. 添加包含所有共享库的原生库位置
    原生库位置配置
    上述位置包含文件libz3java.so。将相同的原生库位置添加到其他JAR也没有解决问题。

  2. 通过VM arguments设置java.library.path
    VM参数配置

  3. 添加对应的环境变量
    环境变量配置

  4. 给共享库文件名添加"lib"前缀
    这是唯一能让我得到另一种异常的操作,我将libz3java.so重命名为liblibz3java.so后得到如下异常:
    重命名后的报错
    libz3.so是同目录下的另一个共享库,给该库名称添加"lib"前缀也没有改变报错。

请问我该如何配置Eclipse,使其能够找到并读取缺失的共享库?


解决方案

首先将你重命名的共享库文件名恢复为原始名称,把liblibz3java.so改回libz3java.so,额外增加前缀会破坏JNI的默认库名查找规则。
按照以下步骤逐一排查配置即可解决问题:

  • 确认Eclipse全局JRE配置与项目JRE一致:打开窗口 > 偏好设置 > Java > 已安装的JRE,勾选项目使用的OpenJDK 8为默认JRE,选中后点击「编辑」,在「默认VM参数」栏填写-Djava.library.path=libz3java.so所在目录的绝对路径,不要使用相对路径。
  • 调整项目运行配置:右键项目 > 运行方式 > 运行配置,找到当前项目对应的Java应用运行项,切换到「环境」标签页,新增变量LD_LIBRARY_PATH,值为libz3java.so所在目录的绝对路径:$LD_LIBRARY_PATH,同时勾选「追加到原生环境」选项后保存。
  • 验证架构匹配:打开终端进入so文件所在目录,执行file libz3java.so,确认输出的架构与OpenJDK 8的架构一致,若二者分别为32位和64位也会提示找不到库。
  • 刷新系统共享库缓存:如果以上操作都无效,在终端执行sudo ldconfig libz3java.so所在目录的绝对路径,执行完成后重启Eclipse再运行项目。

内容的提问来源于stack exchange,提问作者Ketho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:36:03