![](/img/trans.png)
[英]Exception in thread “main” java.lang.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.