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

打包JAR运行时出现SQLException:找不到DerbyDB合适驱动求助

DerbyDB打包JAR后JDBC驱动找不到的解决方法

核心问题

IDEA中运行正常但打包JAR后报错java.sql.SQLException: No suitable driver found for jdbc:derby:C\CostManagerDB,本质是打包的JAR未包含Derby依赖库——IDEA运行时会自动加载项目依赖,但普通JAR不会将第三方依赖包嵌入,导致运行时找不到驱动类。

具体解决方案

1. 打包成包含依赖的胖JAR(Fat JAR)

这是最直接的解决方式,步骤如下:

  • 打开IntelliJ IDEA,依次点击File → Project Structure → Artifacts
  • 点击左上角+号,选择JAR → From modules with dependencies
  • 在弹窗中选择项目的主类(即包含main方法的类,你的代码中未提供,需确保选中正确入口类)
  • 切换到Output Layout标签,确认Available Elements下的Derby相关JAR(derby.jar、derbynet.jar等)已被添加到JAR包内
  • 点击Apply → OK,然后点击菜单栏Build → Build Artifacts,选择对应的Artifact执行构建
  • 运行生成的胖JAR文件(而非普通JAR)

2. 检查JDBC URL的正确性

异常信息中显示的URL是jdbc:derby:C\CostManagerDB,缺少盘符后的冒号,正确格式应为jdbc:derby:C:\\CostManagerDB。确认代码中URL无误的同时,也要注意运行JAR时是否传入了错误的URL参数。

3. 模块化环境下的额外配置(Java 9+)

如果你的项目使用了Java模块系统(存在module-info.java),需要在模块声明中添加Derby依赖:

module your.module.name {
    requires org.apache.derby.jdbc;
    // 其他模块依赖...
}

补充说明

你尝试的Class.forName、META-INF/services注册驱动的方法本身是正确的,但前提是Derby的JAR包必须在运行时的类路径中。打包成胖JAR后,这些配置才能生效,因为依赖库已被嵌入。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:33:15