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

在Eclipse中运行TestNG文件时遭遇slf4j缺失类错误求助

Eclipse运行TestNG报错:NoClassDefFoundError: org/slf4j/LoggerFactory

问题详情

在Eclipse中运行TestNG测试类时触发错误,测试代码和错误信息如下:

测试代码

package java_package;
import org.testng.annotations.Test;
public class Testng1 {
    @Test 
    public void log() {
        System.out.println("Hello");
    }
}

错误日志

[RemoteTestNG] detected TestNG version 7.8.0
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.testng.log4testng.Logger.lambda$getLogger$0(Logger.java:30)
at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
at org.testng.log4testng.Logger.getLogger(Logger.java:30)
at org.testng.TestNG.(TestNG.java:113)
at org.testng.remote.support.RemoteTestNGFactory7_8.createRemoteTestNG(RemoteTestNGFactory7_8.java:16)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:67)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 6 more

已尝试通过Eclipse Marketplace安装组件、更新Eclipse版本,问题仍未解决。

解决办法

这个错误是因为TestNG 7.x版本依赖**SLF4J(Simple Logging Facade for Java)**日志组件,项目中缺少对应依赖包导致的,以下是几种解决方式:

方法1:手动添加SLF4J jar包

  • 下载SLF4J核心包slf4j-api-x.x.x.jar和基础日志实现包slf4j-simple-x.x.x.jar(建议选2.0.x系列,和TestNG 7.8.0兼容)
  • 在Eclipse项目根目录新建lib文件夹,将两个jar包复制进去
  • 选中jar包右键 → Build Path → Add to Build Path

方法2:Maven项目自动导入依赖

如果项目是Maven结构,在pom.xml中添加以下依赖:

<!-- SLF4J核心API -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>2.0.7</version>
</dependency>
<!-- 简易日志实现,适合测试场景 -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.7</version>
    <scope>test</scope>
</dependency>
<!-- TestNG依赖,保持版本与当前使用的7.8.0一致 -->
<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>7.8.0</version>
    <scope>test</scope>
</dependency>

添加后右键项目 → Maven → Update Project,等待依赖自动下载导入

方法3:配置Eclipse TestNG运行时依赖

  • 打开Eclipse → 顶部菜单Window → Preferences
  • 左侧导航栏找到TestNG并点击进入
  • 切换到TestNG Runtime标签,检查已加载的依赖列表
  • 若没有SLF4J相关jar包,点击Add External JARs,选择下载好的SLF4J jar包添加

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 22:53:13