Eclipse使用Apache POI写Excel报org.slf4j模块未找到如何解决
问题原因
报错是因为Apache POI的ooxml组件依赖SLF4J日志模块,你的项目未引入对应SLF4J依赖,若使用Java 9+模块化项目还存在模块声明缺失的问题。
解决方案
步骤1:补充SLF4J依赖
- 下载与你使用的POI版本匹配的SLF4J依赖包,POI 5.x系列推荐搭配SLF4J 2.x版本,需要下载2个jar包:
slf4j-api.jar(核心API包)、slf4j-simple.jar(轻量实现包,测试场景无需额外配置) - 将上述两个jar包和已有的POI相关jar包放在同一依赖目录下
步骤2:处理Java模块化配置(仅针对存在module-info.java的Java 9+模块化项目)
两种方案二选一即可:
方案A(保留模块化特性)
打开项目根目录下的module-info.java,添加如下模块依赖声明:
requires org.slf4j; requires org.apache.poi.ooxml;
方案B(关闭模块化,更简单)
直接删除项目根目录下的module-info.java文件,依赖将默认走类路径加载,不会再触发模块找不到的报错。
步骤3:验证Eclipse依赖配置
- 右键项目 -> 依次选择
Build Path->Configure Build Path - 切换到
Libraries标签页:- 若保留模块化配置,确认所有POI相关jar、SLF4J的两个jar都归类在
Modulepath下 - 若已删除
module-info.java,jar包放在Modulepath或Classpath下均可
- 若保留模块化配置,确认所有POI相关jar、SLF4J的两个jar都归类在
- 确认不存在版本冲突的重复jar包
配置完成后重新运行你的代码即可,代码本身无逻辑错误,运行成功后生成的sampleTest.xlsx文件会保存在项目根目录下。
内容的提问来源于stack exchange,提问作者Naruto Uzumaki
相关产品推荐
相关产品推荐

