Mac M1环境使用Argon2加密密码报UnsatisfiedLinkError无法加载库问题求助
Argon2库加载错误解决方案
问题根因
你遇到的UnsatisfiedLinkError是Apple Silicon(M1/M2)系列设备的兼容性问题:旧版本的argon2-jvm依赖包仅内置了x86架构的Mac原生库,没有适配ARM64架构的Darwin平台,所以JVM无法找到对应架构的argon2原生库。你的代码逻辑没有问题,不需要修改业务代码。
可选用的解决方案
方案1:升级argon2-jvm版本(最推荐)
2.11及以上版本的argon2-jvm已经官方支持Apple Silicon架构,直接修改pom.xml中的依赖版本即可:<dependency> <groupId>de.mkammerer</groupId> <artifactId>argon2-jvm</artifactId> <version>2.11.1</version> </dependency>刷新Maven依赖后重新运行即可解决问题。
方案2:手动安装原生argon2库(适配无法升级依赖的场景)
如果你受项目约束无法升级依赖版本,可以手动安装ARM版的argon2原生库:- 执行Homebrew命令安装argon2:
brew install argon2 - 打开Intellij的运行配置,在「VM选项」栏添加参数:
-Djava.library.path=/opt/homebrew/lib - 保存配置后重新运行程序即可。
- 执行Homebrew命令安装argon2:
方案3:切换为纯Java实现版本
如果你需要跨架构部署不想处理原生库依赖,可以将依赖替换为无原生库的纯Java实现版本:<dependency> <groupId>de.mkammerer</groupId> <artifactId>argon2-jvm-nolibs</artifactId> <version>2.11.1</version> </dependency>该版本完全使用Java实现Argon2算法,无需加载任何系统原生库,全平台通用。
注意:请确保你运行的是ARM原生版本的Intellij,不要使用Rosetta转译启动,否则可能出现架构不匹配导致的库加载失败问题。
内容的提问来源于stack exchange,提问作者YoungDuck
相关产品推荐
相关产品推荐

