ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

sqlite-3.34.0-sqlitejdbc.dll: Can‘t find dependent libraries问题解决

2026/8/16 1:51:13 拓冰建站 浏览量
sqlite-3.34.0-sqlitejdbc.dll: Can‘t find dependent libraries问题解决

在打开jar包的时候,出现了如下报错:即sqlite的动态链接库(sqlite-sqlitejdbc.dll)不加载。

终极办法:

C:\Windows\System32>cmd /c "set JAVA_TOOL_OPTIONS=-Djava.io.tmpdir=D:\java_temp && java -cp E:\sqlite-jdbc-3.28.0.jar;E:\godzilla.jar.bak core.ui.MainActivity"

排查步骤:

1、该动态链接库和Visual C++有关,在控制面板的“程序和功能”栏目中找visual C++ ,要求是15年后的redistributable版本,可修复或重装,经验证我的VC++完好。

2、用Dependencies.exe打开报错的目录sqlite.dll查找缺失,发现有几个.dll缺失,以为是win11系统问题,结果去C:\Windows\System32找了发现是误报。

3、从网上下载sqlite-jdbc-3.28.0.jar,将其中的.dll替换原jar包dll,再组装成jar,文件还原失败。

# 必须先进到文件夹内部 cd E:\godzilla # 把当前目录下所有内容打包成 jar(注意最后的 . ) jar cvf E:\godzilla.jar .

4、终极解决方案:外部sqlite classpath覆盖+指定临时输入输出目录

读取godzilla的启动类:

cd E:\ jar xf godzilla.jar META-INF/MANIFEST.MF Get-Content META-INF/MANIFEST.MF

用classpath指定sqlite.jar+指定英文目录启动:

# 1. 创建纯英文临时目录 mkdir C:\java_temp -Force # 2. 清理之前残留的 DLL Remove-Item "$env:LOCALAPPDATA\Temp\sqlite-*.dll" -Force -ErrorAction SilentlyContinue Remove-Item "C:\java_temp\sqlite-*.dll" -Force -ErrorAction SilentlyContinue # 3. 用纯英文 temp + 3.28.0 classpath 启动 java -Djava.io.tmpdir=C:\java_temp -cp "E:\sqlite-jdbc-3.28.0.jar;E:\godzilla.jar.bak" core.ui.MainActivity

总结:

1、用管理员身份运行cmd会解决powershell一些字符乱的报错。

2、java相关多与JDK、软件、依赖的版本有关。

3、路径尽量以英文命名,若用户名为中文则另指定英文路径。