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

Selenium WebDriver启动浏览器失败报NoClassDefFoundError求助

问题根因

报错java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap是典型的依赖缺失/版本不匹配问题。你手动回退JAR包版本时,要么漏导入了Selenium依赖的Guava组件,要么导入的Guava版本和当前Selenium版本要求不匹配,导致运行时找不到对应的类。

排查解决步骤
  • 先统一Selenium核心包版本:确认项目里导入的selenium-api、selenium-chrome-driver、selenium-remote-driver、selenium-support等所有Selenium相关JAR版本完全一致,禁止混用不同大版本的包。
  • 补全匹配版本的依赖包:如果是手动导包搭建环境,不要只导入Selenium本身的几个JAR,要把对应版本Selenium压缩包内lib目录下的所有依赖JAR全部导入项目,其中就包含版本适配的Guava包,不要自行替换成过低版本的Guava——Selenium 3.x要求Guava版本不低于23.0,Selenium 4.x要求Guava版本不低于30.0。
  • 修正驱动配置:你代码中配置的ChromeDriver路径没有加.exe后缀,Windows环境下需要补全后缀为C:\\Users\\munta\\WebDrivers\\chromedriver.exe,同时确认本地安装的Chrome浏览器大版本号和ChromeDriver大版本号完全对应,否则就算依赖问题解决了也会启动失败。
  • 清理Eclipse项目缓存:导包完成后右键项目,进入Build Path -> Configure Build Path,在Libraries栏确认所有导入的JAR没有红叉异常,点击Apply保存后,再通过顶部菜单栏Project -> Clean清理项目编译缓存,再重新运行代码。
参考修正后代码
package webElementsandDrivers;

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

public class wDrivers {

    public static void main(String[] args) {
        // Windows环境注意补全驱动的.exe后缀
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\munta\\WebDrivers\\chromedriver.exe");    
        WebDriver driver = new ChromeDriver();
        driver.get("http://www.google.com");
        // 执行完成后退出驱动,避免后台残留chromedriver进程
        driver.quit();
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 01:39:17