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

首个Selenium Java程序报错:java.lang.NoClassDefFoundError问题求助

问题描述

编写了第一个Selenium Java程序,代码如下:

package testing;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class demooo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
           System.out.println("hi");
           System.setProperty("webdriver.chrome.driver", "C:\\Users\\kavya\\Downloads\\chromedriver-win64\\chromedriver-win64\\chromedriver.exe");
           WebDriver driver = new ChromeDriver();
           driver.get("https://www.gmail.com/");
    }
}

运行时出现如下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/io/ByteStreams
错误原因

该错误是由于项目缺少Guava依赖库导致的。Selenium(尤其是4.x及以上版本)依赖Guava类库,com.google.common.io.ByteStreams是Guava中的核心类,当项目未引入该依赖或依赖版本不匹配时,运行时就会找不到这个类,抛出NoClassDefFoundError。

解决方法

方法1:使用Maven管理依赖(推荐)

如果你的项目用Maven构建,在pom.xml中添加Guava依赖(选择与你使用的Selenium版本匹配的Guava版本,例如Selenium 4.xx版本可搭配Guava 31.0.1-jre):

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.0.1-jre</version>
</dependency>

同时确保已正确引入Selenium的依赖:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.15.0</version> <!-- 替换为你使用的Selenium版本 -->
</dependency>

方法2:手动导入Jar包

  1. 下载对应版本的Guava Jar包,将下载好的Jar包添加到项目的类路径中(例如在Eclipse中右键项目 → Build Path → Add External Archives)。
  2. 检查并确保Selenium的所有核心依赖Jar包(如selenium-java.jar、selenium-api.jar等)都已正确导入项目。

额外注意

你的代码中webdriver.chrome.driver的路径原本存在换行,建议修正为完整的一行,避免路径解析错误:

System.setProperty("webdriver.chrome.driver", "C:\\Users\\kavya\\Downloads\\chromedriver-win64\\chromedriver-win64\\chromedriver.exe");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 14:32:39