Mac M1(IntelliJ环境)下解决SQLite aarch64本地库缺失问题
Mac M1 + IntelliJ 下SQLite原生库缺失问题解决办法
Caused by: java.lang.Exception: No native library is found for os.name=Mac and os.arch=aarch64. path=/org/sqlite/native/Mac/aarch64
at org.sqlite.SQLiteJDBCLoader.loadSQLiteNativeLibrary(SQLiteJDBCLoader.java:333)
at org.sqlite.SQLiteJDBCLoader.initialize(SQLiteJDBCLoader.java:64)
at org.sqlite.core.NativeDB.load(NativeDB.java:63)
at org.sqlite.SQLiteConnection.open(SQLiteConnection.java:235)
... 26 more
解决方案
1. 升级SQLite JDBC驱动版本
低版本的SQLite JDBC不支持Apple Silicon的aarch64架构,至少要升级到3.39.0及以上版本(该版本开始正式适配M1芯片)。
- Maven项目修改pom.xml依赖:
<dependency> <groupId>org.xerial</groupId> <artifactId>sqlite-jdbc</artifactId> <version>3.45.2.0</version> <!-- 优先用最新稳定版 --> </dependency>
- Gradle项目修改build.gradle:
implementation 'org.xerial:sqlite-jdbc:3.45.2.0'
2. 用Rosetta模式运行IntelliJ(临时兼容方案)
如果暂时没法升级驱动,可以让IntelliJ模拟x86_64架构运行:
- 找到应用程序里的IntelliJ IDEA,右键选「显示简介」
- 勾选「使用Rosetta打开」,重启IntelliJ后再运行项目
3. 手动指定原生库路径(极端场景)
如果升级驱动后仍报错,可手动下载适配aarch64的原生库:
- 提取SQLite JDBC官方包中的
libsqlitejdbc.dylib(Mac aarch64版本) - 在IntelliJ的Run/Debug Configurations里,给VM options添加以下参数:
-Dorg.sqlite.lib.path=/你存放原生库的路径 -Dorg.sqlite.lib.name=libsqlitejdbc.dylib
内容的提问来源于stack exchange,提问作者francesco bossola
相关产品推荐
相关产品推荐

