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

Mac M1芯片运行JavaFX应用时jargon2-native-ri-backend库链接错误

解决M1 Mac上JavaFX应用的Jargon2本地库架构兼容问题

问题诊断

从错误栈可明确,jargon2-native-ri-backend:1.1.1提供的本地库仅包含i386、x86_64架构,不支持M1芯片的arm64架构,导致加载时抛出UnsatisfiedLinkError。

解决方案

1. 替换为纯Java实现的Jargon2后端

这是最简便的方案,无需修改业务代码,仅需更换依赖:

  • 移除pom中的jargon2-native-ri-backend依赖
  • 添加纯Java后端依赖:
<dependency>
    <groupId>com.kosprov.jargon2</groupId>
    <artifactId>jargon2-pure-java-backend</artifactId>
    <version>1.1.1</version>
    <scope>runtime</scope>
</dependency>

纯Java实现不依赖任何本地库,跨平台兼容性更好,你当前的密码哈希代码可完全保持不变。

2. 启用Rosetta运行IntelliJ及应用

Rosetta可让x86_64架构的程序在M1 Mac上运行,操作步骤:

  • 找到Launchpad或应用文件夹中的IntelliJ IDEA图标
  • 右键选择「显示简介」
  • 勾选「使用Rosetta打开」
  • 重启IntelliJ后重新运行JavaFX应用
    此时JVM会以x86_64模式运行,可兼容现有jargon2本地库。

3. 手动编译支持arm64的本地库

若必须使用native-ri后端,可自行编译适配arm64的版本:

  • 克隆jargon2-jvm项目源码
  • 按照项目文档的编译说明,在M1 Mac上编译native-ri后端的arm64版本
  • 将编译生成的.jnilib文件替换到项目依赖对应路径,或安装到本地Maven仓库后修改pom依赖版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:29:52