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

使用Apache POI的JavaFX应用启动失败,提示依赖模块未找到

解决JavaFX项目中Apache POI的模块依赖缺失问题

问题原因

org.apache.poi.ooxml模块依赖的SparseBitSet和commons.math3属于自动模块(没有自带module-info.java),在Java模块化项目中,必须显式声明对这些自动模块的依赖,否则模块启动时会找不到它们。

解决方案

1. 修改module-info.java

在你的模块声明文件中,添加对这两个自动模块的requires声明:

module 你的模块名 {
    requires javafx.controls;
    requires javafx.fxml;
    requires org.apache.poi.ooxml;
    // 新增以下两行依赖声明
    requires org.apache.commons.sparsebitset;
    requires org.apache.commons.math3;

    opens 你的包名 to javafx.fxml;
    exports 你的包名;
}

注意替换代码中的「你的模块名」和「你的包名」为项目实际的模块名称与包路径。

2. 同步Gradle依赖

虽然你已在外部库中看到这两个依赖,仍需确保Gradle完成依赖同步:

  • 在IntelliJ中点击Gradle工具栏的「Refresh all Gradle projects」按钮;
  • 或执行命令:./gradlew build --refresh-dependencies。

3. 检查运行配置

若仍报错,检查IntelliJ的运行配置:

  • 打开「Run/Debug Configurations」,确认「VM options」中没有手动限制模块路径的参数,确保Gradle自动生成的模块路径包含所有依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:05:48