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

Linux环境下JOOQ代码生成失败:org.postgresql.Driver类未找到异常

搞定JOOQ生成类时的PostgreSQL驱动找不到问题

嗨,我看到你在生成JOOQ类的时候碰到了这个驱动找不到的错误,这在日常开发里真的挺常见的,主要就是依赖没配到位的事儿,我来给你一步步捋清楚怎么解决:

先看问题根源

你给出的报错信息里,核心问题一目了然:

Apr 24, 2018 1:39:11 PM org.jooq.tools.JooqLogger info INFO: Initialising properties : jooq-configuration.xml
Apr 24, 2018 1:39:11 PM org.jooq.tools.JooqLogger error SEVERE: Cannot read jooq-configuration.xml. Error : org.postgresql.Driver
java.lang.ClassNotFoundException: org.postgresql.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:...

说白了就是JOOQ的代码生成工具在运行时,找不到PostgreSQL的JDBC驱动类,十有八九是驱动的依赖没被加到生成工具的classpath里。

具体解决办法

1. 先确认依赖有没有加对

如果你用Maven或者Gradle管理项目,先把PostgreSQL驱动的依赖配上,而且要保证代码生成阶段能拿到这个依赖:

Maven的情况

在你的pom.xml里加这个依赖:

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>换成你PostgreSQL对应的驱动版本</version>
    <!-- 因为代码生成是编译期的活儿,scope设成compile或者provided都可以,看你需求 -->
    <scope>compile</scope>
</dependency>

另外,别忘了给JOOQ的代码生成插件也加上这个依赖,不然插件可能拿不到:

<plugin>
    <groupId>org.jooq</groupId>
    <artifactId>jooq-codegen-maven</artifactId>
    <version>你的JOOQ版本</version>
    <dependencies>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>对应版本号</version>
        </dependency>
    </dependencies>
    <!-- 这里放你的代码生成配置,比如数据库连接、生成路径这些 -->
</plugin>

Gradle的情况

在build.gradle里这么加:

dependencies {
    // 项目里用的驱动依赖
    implementation 'org.postgresql:postgresql:对应版本号'
    // JOOQ代码生成工具要用的驱动
    jooqGenerator 'org.postgresql:postgresql:对应版本号'
}

2. 命令行运行的话手动加classpath

要是你直接用命令行跑JOOQ生成工具,那得把驱动的jar包直接加到classpath里才行,比如:

java -cp "jooq-codegen.jar:postgresql-xxx.jar:其他需要的依赖.jar" org.jooq.codegen.GenerationTool jooq-configuration.xml

这里的postgresql-xxx.jar就是你下载好的驱动jar包,记得换成实际的文件名。

3. 检查配置文件里的驱动类名

最后再确认下jooq-configuration.xml里的驱动类名是不是写对了,应该是:

<configuration>
    <jdbc>
        <driver>org.postgresql.Driver</driver>
        <!-- 这里还要配url、用户名、密码这些哦 -->
    </jdbc>
    <!-- 其他生成相关的配置 -->
</configuration>

别手滑写错了,比如少个org.前缀这种小错误也会导致找不到类。

小提醒

  • 驱动版本尽量和你的PostgreSQL服务器版本匹配,不然可能会有兼容性问题
  • 要是在IDE里跑生成任务,记得刷新下依赖(比如Maven的Reload All,Gradle的Refresh Project),不然IDE可能没把新依赖加载进来

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:27:13