NoClassDefFoundError in Java: com/google/common/base/Function

2022-08-31 16:48:44

当我执行以下代码时:

public static void main(String[] args) {
    try {
        FirefoxDriver driver = new FirefoxDriver();
        driver.get("http:www.yahoo.com");
    } catch (NoClassDefFoundError ex) {
        System.out.println("error: " + ex.getStackTrace());
    }
}

我遇到以下错误:

error:[Ljava.lang.StackTraceElement;@80f4cb

线程“main” java.lang.NoClassDefFoundError 中的异常:com/google/common/base/Function


有人可以帮我找到解决方案或原因吗?


答案 1

我遇到了同样的问题,最后我发现我忘了添加硒服务器独立版本.jar。我只添加了客户端jar,selenium-java-version.jar

希望这有帮助。


答案 2

当 JRE 找不到类时,将抛出 A。在你的情况下,它找不到类,你很可能没有将其添加到类路径中。NoClassDefFoundErrorcom.google.common.base.Function

编辑

下载以下库后:

并解压缩它们并将所有JAR文件放在一个名为 的文件夹中,测试类:lib

import org.openqa.selenium.firefox.FirefoxDriver;

public class Test {
    public static void main(String[] args) {
        try{
            FirefoxDriver driver = new FirefoxDriver();
            driver.get("http:www.yahoo.com");
        } catch(Exception e){
            e.printStackTrace();
        }
    }
}

运行没有任何问题。

您可以编译并运行该类,如下所示:

# compile and run on Linux & Mac
javac -cp .:lib/* Test.java 
java -cp .:lib/* Test

# compile and run on Windows
javac -cp .;lib/* Test.java 
java -cp .;lib/* Test

推荐