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

集成CP-SAT的Java应用在Windows正常,macOS运行报错

Google OR-Tools Java 应用在Mac上的UnsatisfiedLinkError 解决方法

问题说明

你的Java应用在Windows上运行正常,但在MacBook的IntelliJ中出现两类UnsatisfiedLinkError:

  1. 初始错误:

Exception in thread "Thread-1" java.lang.UnsatisfiedLinkError:
Can't load library: /var/folders/fh/p53vbgc50gq9h80kn950pvnh0000gn/T/ortools-java17235137568310781234/darwin/libjniortools.dylib

  1. 更换加载方式为Loader.loadNativeLibraries()后出现的错误:

Exception in thread "Thread-1" java.lang.UnsatisfiedLinkError:
byte[] com.google.ortools.sat.mainJNI.SatHelper_solveWithParameters(byte[], byte[])

这类错误本质是Java无法找到或匹配对应的本地原生库(.dylib),以下是针对性解决步骤:


解决步骤

1. 确认OR-Tools版本与Mac架构、Java版本的兼容性

  • 如果你的Mac是Apple Silicon(M系列芯片),必须使用OR-Tools 9.5及以上版本,旧版本不支持arm64架构。
  • Java版本需使用11及以上,避免版本不兼容导致的绑定失效。

2. 统一依赖配置与加载方式

不要混用OrToolsHelper.loadLibrary()和Loader.loadNativeLibraries(),全程使用Loader.loadNativeLibraries()加载库,同时确保依赖引入时指定对应Mac架构的classifier:

Maven依赖示例:

<dependency>
    <groupId>com.google.ortools</groupId>
    <artifactId>ortools-java</artifactId>
    <version>9.7.2996</version> <!-- 使用最新稳定版 -->
    <!-- Apple Silicon用darwin-aarch64,Intel Mac用darwin -->
    <classifier>darwin-aarch64</classifier>
</dependency>

Gradle依赖示例:

implementation 'com.google.ortools:ortools-java:9.7.2996:darwin-aarch64' // Apple Silicon
// implementation 'com.google.ortools:ortools-java:9.7.2996:darwin' // Intel Mac

3. 清理OR-Tools临时缓存

错误中提到的临时目录是Loader自动下载原生库的位置,缓存损坏可能导致加载失败:

  • 打开终端,删除/var/folders/下所有以ortools-java开头的目录(比如错误里的ortools-java17235137568310781234)
  • 重新运行应用,让Loader自动重新下载匹配版本的原生库。

4. 检查IntelliJ运行配置

  • 确认IntelliJ使用的Java SDK是Mac本地的11+版本,且与依赖的OR-Tools版本兼容。
  • 不要手动设置java.library.path参数,Loader会自动处理原生库的路径。

5. Apple Silicon额外处理(如果适用)

如果使用M系列芯片且OR-Tools版本低于9.5,可尝试:

  • 右键点击IntelliJ图标,选择「显示简介」,勾选「使用Rosetta打开」,以x86兼容模式运行IDE,再重新运行应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 06:14:51