Gradle未将SQLite JAR文件添加至Java项目的问题求助
解决SQLite JDBC的ClassNotFoundException问题
确认依赖已加入运行时类路径
先执行Gradle命令检查运行时依赖是否包含SQLite驱动:
./gradlew dependencies --configuration runtimeClasspath
查看输出中是否存在org.xerial:sqlite-jdbc:3.40.0.0。如果没有,执行./gradlew clean build重新构建项目,确保依赖包完成下载并引入。
使用Gradle官方任务启动应用
不要手动编译后直接用java命令运行类文件——这种方式不会自动将依赖Jar加入类路径。正确启动方式是调用application插件提供的run任务:
./gradlew run
该任务会自动将所有运行时依赖纳入类路径,避免驱动类找不到的问题。
移除冗余的驱动加载代码
JDBC 4.0及以上版本(sqlite-jdbc 3.x完全符合规范)无需手动调用Class.forName()加载驱动,DriverManager会通过Jar包内的META-INF/services自动发现并加载驱动。修改代码如下:
public static void main( String args[] ) { Connection c = null; try { // 移除Class.forName("org.sqlite.JDBC"); 这一行 c = DriverManager.getConnection("jdbc:sqlite:database.db"); } catch ( Exception e ) { System.err.println( e.getClass().getName() + ": " + e.getMessage() ); System.exit(0); } System.out.println("Opened database successfully"); }
若需打包成可执行Jar
如果要生成包含所有依赖的独立可执行Jar,需添加Shadow插件:
- 在
build.gradle的plugins块中追加:id 'com.github.johnrengelman.shadow' version '7.1.2' - 执行打包命令:
生成的Jar文件位于./gradlew shadowJarbuild/libs/目录下(文件名通常为[项目名]-all.jar),直接用java -jar命令即可运行。
内容的提问来源于stack exchange,提问作者EzequielS121
相关产品推荐
相关产品推荐

