ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

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

sqlite-3.34.0-sqlitejdbc.dll: Can‘t find dependent libraries问题解决 在打开jar包的时候出现了如下报错即sqlite的动态链接库sqlite-sqlitejdbc.dll不加载。终极办法C:\Windows\System32cmd /c set JAVA_TOOL_OPTIONS-Djava.io.tmpdirD:\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.tmpdirC:\java_temp -cp E:\sqlite-jdbc-3.28.0.jar;E:\godzilla.jar.bak core.ui.MainActivity总结1、用管理员身份运行cmd会解决powershell一些字符乱的报错。2、java相关多与JDK、软件、依赖的版本有关。3、路径尽量以英文命名若用户名为中文则另指定英文路径。
返回列表