为了账号安全,请及时绑定邮箱和手机立即绑定

Java中的NoClassDefFoundError:com / google / common

/ 猿问

Java中的NoClassDefFoundError:com / google / common

扬帆大鱼 2019-10-19 17:01:35

当我执行以下代码时:


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());

    }

}

我遇到以下错误:


错误:[Ljava.lang.StackTraceElement; @ 80f4cb


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



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


查看完整描述

3 回答

?
繁花如伊

我遇到了同样的问题,最后我发现我忘记添加selenium-server-standalone-version.jar了。我只添加了客户端jar selenium-java-version.jar。


希望这可以帮助。


查看完整回答
反对 回复 2019-10-19
?
沧海一幻觉

NoClassDefFoundError当JRE找不到类时,抛出A。就您而言,它找不到com.google.common.base.Function您很可能没有添加到类路径中的类。


编辑

下载以下库后:


硒:http : //code.google.com/p/selenium/downloads/list

番石榴:http : //code.google.com/p/guava-libraries/downloads/list

Apache HttpComponents:http : //hc.apache.org/downloads.cgi

JSON jar:http://www.jarfinder.com/index.php/jars/versionInfo/21653

并将其解压缩,然后将所有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();

        }

    }

}

运行没有任何问题。


您可以按以下方式编译和运行该类:


#编译并在Linux和Mac上运行

javac -cp。:lib / * Test.java 

java -cp。:lib / *测试


#编译并在Windows上运行

javac -cp。; lib / * Test.java 

java -cp。; lib / *测试


查看完整回答
反对 回复 2019-10-19
?
天涯尽头无女友

我遇到了同样的错误,经过调查,我发现库selenium-api 2.41.0需要guava 15.0,但是它被较旧的版本覆盖,因此我通过在pom.xml中添加以下配置将guava 15.0声明为直接依赖项:


<dependency>

        <artifactId>guava</artifactId>

        <groupId>com.google.guava</groupId>

        <type>jar</type>

        <version>15.0</version>

</dependency>


查看完整回答
反对 回复 2019-10-19

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信