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

JavaFX项目打包为exe后出现java.sql.SQLException类未找到异常的解决方法

问题描述
  • 基于JavaFX在IDEA开发待办事项列表项目,数据库采用Firebird 2.5.9,IDEA内运行完全正常
  • 将项目打包为jar后,通过exe4j工具转换为exe文件,执行exe时抛出如下异常:
java.lang.NoClassDefFoundError: java/sql/SQLException
    at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3434)
    at java.base/java.lang.Class.getDeclaredMethod(Class.java:2705)
    at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:82)
    at com.exe4j.runtime.WinLauncher.main(WinLauncher.java:94)
Caused by: java.lang.ClassNotFoundException: java.sql.SQLException
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 5 more

已尝试过相关解决方案,但不适配当前场景,需解决该异常使exe正常执行。

解决方案

1. 处理Java模块化依赖(Java 9+)

如果使用Java 9及以上版本,由于模块化系统限制,需确保项目正确引入java.sql模块:

  • 若项目为模块化项目(存在module-info.java),添加模块依赖声明:
module your.project.module {
    requires java.sql;
    // 同时保留JavaFX相关模块依赖,例如:
    requires javafx.controls;
    requires javafx.fxml;
    // 引入Firebird驱动模块(若驱动为模块化版本)
    requires org.firebirdsql.jdbc;
}
  • 若为非模块化项目,在打包或exe4j配置中添加VM参数:
--add-modules java.sql

2. 构建包含完整依赖的胖jar

仅打包项目自身代码会缺失JavaSQL及Firebird驱动类,需构建胖jar:

  • 使用Maven的maven-assembly-plugin或Gradle的shadowJar插件,将所有依赖(包括Firebird驱动、JavaSQL相关类)打包进同一个jar文件
  • 解压验证胖jar,确认java/sql/SQLException.class和Firebird驱动类存在于jar包内

3. 修正exe4j配置

  • 确保exe4j中指定的JRE版本与开发环境一致(避免Java 8与Java 9+混用)
  • 在exe4j的「VM Parameters」中添加--add-modules java.sql(针对Java 9+非模块化项目)
  • 检查exe4j中配置的主类路径是否正确,确保主类所在的jar被加载

4. 验证Firebird驱动兼容性

使用与Firebird 2.5.9兼容的Jaybird驱动(推荐2.2.x或3.0.x版本),并确保驱动被正确添加到项目依赖且被打包进胖jar。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 23:54:57