IntelliJ 2022.2.2中PostgreSQL JDBC驱动加载失败求助
PostgreSQL JDBC驱动加载失败问题排查
已执行的操作
- 初始化代码中通过
Class.forName加载驱动类:
public void init() throws SQLException, ClassNotFoundException { Class.forName("org.postgresql.Driver"); this.connection = DriverManager.getConnection(this.dbUrl, this.user, this.password); }
- 已将包含
org.postgresql.Driver的postgresql-42.5.0.jar添加至项目依赖与项目库 - 配置了Run/Debug运行参数
报错信息
Exception in thread "main" java.sql.SQLException: No suitable driver found for "jdbc:postgresql://localhost:5432/test" at java.sql.DriverManager.getConnection(DriverManager.java:689) at java.sql.DriverManager.getConnection(DriverManager.java:247) at webservice.util.sql.libs.SQLConnector.init(SQLConnector.java:26) at webservice.util.sql.libs.SQLConnectorImpl.main(SQLConnectorImpl.java:17)
Process finished with exit code 1
解决建议
修正JDBC URL格式
报错信息中URL带有双引号"jdbc:postgresql://localhost:5432/test",这会导致DriverManager无法识别合法的URL格式,需移除引号后重试。确认运行时类路径包含驱动包
- 若为Maven/Gradle项目,检查依赖范围是否为
implementation(而非provided),确保运行时能加载到驱动包; - 手动添加jar包的情况下,在Run/Debug配置的
Classpath标签中,确认驱动jar已被加入Module dependencies或Libraries列表,未被排除。
- 若为Maven/Gradle项目,检查依赖范围是否为
简化驱动加载逻辑
JDBC 4.0及以上版本支持驱动自动注册,可尝试删除Class.forName("org.postgresql.Driver")语句,直接调用DriverManager.getConnection,规避类加载异常问题。验证驱动包完整性
重新下载postgresql-42.5.0.jar,解压后检查是否存在org/postgresql/Driver.class文件,排除jar包损坏导致的加载失败。
内容的提问来源于stack exchange,提问作者Magda Muffin
相关产品推荐
相关产品推荐

