You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Maven项目打包成Jar后出现PostgreSQL无合适驱动问题求助

问题:打包Jar后PostgreSQL驱动找不到(IDE运行正常)

我开发的Java应用需要连接PostgreSQL,在IntelliJ中编写和测试代码时完全正常,但将其打包为.jar文件后,出现No Suitable Driver Found错误。已使用7zip检查打包后的文件,确认postgresql库已包含其中。

项目pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.app.app</groupId>
<artifactId>trac</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>42.7.2</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.30</version>
        <scope>provided</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.17.2</version>
    </dependency>
</dependencies>
</project>

数据库连接代码

(IDE中运行完全正常)

package com.app.app.db;

import lombok.Getter;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DatabaseSession {

   @Getter
   private static Connection connection;

   public static void Initialise(String uri, String user, String password) {
       try {
           Class.forName("org.postgresql.Driver");
           System.out.println("Loaded PostgreSQL JDBC Driver");
           try {
               System.out.println("Attempting to connect to PostgreSQL database..." + uri + " " + user);
               connection = DriverManager.getConnection(uri, user, password);
               if (connection != null) {
                   System.out.println("Successfully connected to PostgreSQL database: " + connection.getSchema());
               }
           } catch (SQLException e) {
               e.printStackTrace();
           }
       } catch (ClassNotFoundException e) {
           System.out.println("Class not found " + e);
       }
    }
}

已尝试的解决方法

  • 使用IntelliJ内置构建工具生成jar
  • 执行mvn clean后再执行mvn package
  • 使用Maven Shade插件(已知该插件曾解决过类似问题)

内容的提问来源于stack exchange,提问作者demonLaMagra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 08:50:03