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

使用Log4J时遭遇NoClassDefFoundError问题求助

解决Log4J运行时NoClassDefFoundError问题

你遇到的java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager错误,本质是运行时classpath中缺少Log4J的依赖包——即便编译阶段正常,也会出现这类问题。结合你的场景,可按以下步骤排查修复:

1. 检查Gradle依赖配置

确保build.gradle中Log4J依赖使用implementation scope(而非compileOnly/provided),这类scope会将依赖同时纳入编译和运行时classpath。正确配置示例:

dependencies {
    implementation 'org.apache.logging.log4j:log4j-api:2.20.0'
    implementation 'org.apache.logging.log4j:log4j-core:2.20.0'
}

2. 强制同步Gradle并刷新依赖

  • 在IntelliJ中点击Gradle面板的「Sync Project with Gradle Files」按钮;
  • 或在终端执行命令:
    ./gradlew clean build --refresh-dependencies
    
    该命令会清理旧缓存、重新下载依赖并完成构建。

3. 验证运行时classpath

执行以下命令查看项目运行时依赖是否包含Log4J:

./gradlew dependencies --configuration runtimeClasspath

输出结果中需能找到log4j-api和log4j-core的条目,否则说明依赖配置仍有问题。

4. 用Gradle Run任务启动程序

避免直接用java命令手动指定classpath,改用Gradle内置的run任务启动,它会自动处理依赖路径:

./gradlew run

5. 检查IntelliJ运行配置

在IntelliJ的运行配置中,确认「Use classpath of module」选择的是当前项目的主模块,且未手动排除Log4J依赖。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 04:10:01