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

Mac运行Google OR-Tools Java示例遇UnsatisfiedLinkError问题求助

解决Mac OS下Google OR-Tools Java示例的java.lang.UnsatisfiedLinkError问题

嘿,刚帮好几个Java新手搞定过这个问题,别慌!这是OR-Tools Java版本典型的本地库依赖问题——程序找不到jniortools这个系统库,咱们一步步来解决:

最省心的方案:用Homebrew安装OR-Tools

Mac上用Homebrew装OR-Tools是最省事的,它会自动把本地库放到系统能找到的位置:

  • 如果你还没装Homebrew,先敲这个命令安装:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  • 然后安装OR-Tools:
    brew install or-tools
    
  • 安装完成后,libjniortools.dylib(Mac上的动态库格式)会被放到对应的目录:
    • Intel芯片Mac:/usr/local/lib
    • Apple Silicon芯片Mac:/opt/homebrew/lib

接下来要让Java找到这个库:

命令行运行程序

直接在终端运行你的Java程序时,加上-Djava.library.path参数指定库的路径:

# Intel Mac示例
java -Djava.library.path=/usr/local/lib -cp your-class-path YourMainClass
# Apple Silicon Mac示例
java -Djava.library.path=/opt/homebrew/lib -cp your-class-path YourMainClass

IDE中运行(比如IntelliJ/Eclipse)

以IntelliJ为例:

  • 点击顶部菜单栏的Run -> Edit Configurations
  • 找到你的Java运行配置,在VM options里添加:
    -Djava.library.path=/usr/local/lib  # 或者Apple Silicon对应的/opt/homebrew/lib
    
  • 保存后重新运行程序就行。

手动下载预编译包的方案(不想用Homebrew的话)

如果偏好手动管理:

  1. 下载对应Mac芯片的OR-Tools预编译包(注意区分Apple Silicon或Intel版本)
  2. 解压后找到lib文件夹,里面就有libjniortools.dylib
  3. 运行程序时,把java.library.path指向这个lib文件夹,或者把libjniortools.dylib复制到/usr/local/lib(需要sudo权限):
    sudo cp /path/to/extracted/lib/libjniortools.dylib /usr/local/lib
    

最后确认下你的代码里加载库的语句是对的:System.loadLibrary("jniortools");——Java会自动识别Mac上的libjniortools.dylib,不用写全文件名,这个是没问题的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:44:33