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

JDK11+JavaFX项目遇c3p0模块未找到异常求助

解决思路
  • 检查c3p0 JAR的模块化状态
    查看c3p0的JAR包内是否存在module-info.class文件。如果没有,说明它是非模块化JAR,属于自动模块。此时虽然requires c3p0;的声明语法正确,但需要确保Gradle将其加入模块路径而非类路径。

  • 修正Gradle配置,确保依赖进入模块路径
    确认Gradle依赖配置正确,并且运行时JVM参数包含模块路径。示例配置:

    dependencies {
        implementation 'com.mchange:c3p0:0.9.5.5'
    }
    
    tasks.withType(JavaCompile) {
        options.compilerArgs += ['--module-path', classpath.asPath]
    }
    
    tasks.withType(JavaExec) {
        jvmArgs += ['--module-path', classpath.asPath, '--module', '你的模块名/主类全限定名']
    }
    

    替换你的模块名和主类全限定名为实际项目信息。

  • 确认自动模块名称正确性
    查看c3p0 JAR的MANIFEST.MF文件,检查是否有Automatic-Module-Name属性,存在则用该属性值作为requires的模块名;如果没有,默认自动模块名为去掉版本号的JAR文件名(比如c3p0-0.9.5.5.jar对应模块名c3p0)。若名称不匹配,会导致模块找不到。

  • 检查IDE运行配置
    如果用IDE启动项目,需确认运行配置的「模块路径」中包含c3p0依赖。部分IDE默认可能将非模块化JAR放到类路径,需手动调整到模块路径。

  • 临时降级为非模块化模式
    如果不需要项目的模块化特性,可以直接删除module-info.java文件,改用传统类路径方式运行,避免模块系统的限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:35:12