簡體   English   中英

Java中的NoClassDefFoundError:com / google / common / base / Function

[英]NoClassDefFoundError in Java: com/google/common/base/Function

當我執行以下代碼時:

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

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


有人可以幫我找到解決方案或原因嗎?

我有同樣的問題,最后我發現我忘了添加selenium-server-standalone-version.jar 我只添加了客戶端jar, selenium-java-version.jar

希望這可以幫助。

當JRE找不到類時,拋出NoClassDefFoundError 在您的情況下,它找不到com.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

我遇到了同樣的錯誤,經過調查,我發現庫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>

您的類路徑中沒有“google-collections”庫。

有很多方法可以將庫添加到類路徑中 ,因此請提供有關如何執行程序的更多信息。

如果從命令行,您可以通過添加庫到類路徑

java -classpath path/lib.jar ...

對我來說,除了選擇jar - selenium-java-2.45.0.jar之外,我還必須在selenium root文件夾下的“libs”文件夾中選擇所有的jar。

請包含selenium獨立和lib文件夾的所有jar文件,然后將解決此錯誤

我遇到了同樣的問題,即使在安裝'selenium-server-standalone-version.jar'后也失敗了,我認為你需要安裝guava和guava-gwt jar( https://code.google.com/p/guava) -libraries / )。 我添加了所有這些jar,最后它在我的電腦上工作。 希望它適用於遇到此問題的其他人。

我遇到過同樣的問題。 我發現我忘了將selenium-2.53.0 / selenium-java-2.53.0-srcs.jar文件添加到我的項目的參考庫中。

我得到了同樣的錯誤,但是如果你添加了selenium庫(如果你還沒有),如果你使用的是INTELIJ,它就解決了

project> projectStructure> Module> +>添加selenium jar(來自lib文件夾和外部文件夾)。

同樣需要為其他IDE做,比如eclipse。

看起來您正在嘗試導入一些谷歌代碼:

import com.google.common.base.Function;

而且它沒有找到類功能。 檢查以確保所有必需的庫都在構建路徑中,並且您正確鍵入了包。

當我發現異常java.lang.NoClassDefFoundError: com/google/common/base/Function它是由項目庫中的錯誤引起的。

請在項目設置中進行檢查。 對於Intellij IDEA,請轉到文件 - 項目結構,然后選擇模塊選項卡。 我需要做的就是重新添加selenium庫

解壓縮“selenium-java-.zip”文件后,需要從IDE配置構建路徑。 導入“lib”文件夾下的所有jar文件以及selenium獨立服務器和Selenium java版jar文件。

我想在IDE之外嘗試一個簡單的類。 所以從網站下載了selenium zip並運行如下所示的類:

java -cp selenium-2.50.1/*:selenium-2.50.1/libs/*:. my/package/MyClass <params>

我有一個問題,我最初使用lib而不是libs 並不需要添加硒獨立的罐子。 這是Java 8,它可以理解classpath中的通配符。 我認為java 7也會這樣做。

我有同樣的問題,最后我發現我忘了添加selenium-server-standalone-version.jar。 我只添加了客戶端jar,selenium-java-version.jar。

this is for chrome  
System.setProperty("webdriver.chrome.driver","D:\\Testing_offical\\chromedriver.exe");
driver =new ChromeDriver();
this is for fire fox 
System.setProperty("webdriver.gecko.driver",""D:\\Testing_offical\\geckodriver.exe"");
driver =new FirefoxDriver();

模式:

System.setProperty("webdriver.gecko.driver","**Path of the gecko driver** ");

注意從這里下載gecko: - http://docs.seleniumhq.org/download/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM