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

JackCess 4.0.1运行报NoClassDefFoundError: java/sql/Blob异常求助

问题原因
  • Java 9及以上版本引入了JPMS(Java平台模块化系统),java.sql.Blob所属的java.sql模块并非所有运行场景都会默认加载:
    • 若项目使用模块化配置(存在module-info.java),未显式声明依赖java.sql模块时,类加载器无法找到对应类
    • 若项目未使用模块化配置,部分精简JDK发行版、运行时指定了模块限制参数、或自定义jlink运行镜像未包含java.sql模块时,也会出现该错误
  • Jackcess 4.x版本本身依赖java.sql模块下的Blob相关类,官方文档提到的「依赖缺失」包含JDK内置模块缺失的场景,并非仅指代第三方依赖缺失。
解决方案

根据你的项目配置选择对应方案即可:

场景1:项目使用模块化配置(存在module-info.java)

在module-info.java中添加java.sql模块的依赖声明:

module your.module.name {
    // 保留原有依赖声明
    requires java.sql;
}

场景2:项目未使用模块化配置(走Classpath模式运行)

在程序启动的VM参数中添加--add-modules java.sql强制加载该模块:

  • 命令行运行示例:
    java --add-modules java.sql -cp <你的类路径> <主类全限定名>
    
  • Maven运行/测试配置,以maven-surefire-plugin为例:
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${surefire.version}</version>
        <configuration>
            <argLine>--add-modules java.sql</argLine>
        </configuration>
    </plugin>
    
  • IDE运行时,在对应运行配置的「VM选项」栏添加--add-modules java.sql即可。

场景3:使用jlink构建自定义运行时镜像

构建镜像时将java.sql模块加入到包含的模块列表中即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:15:04