web-dev-qa-db-fra.com

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

Lorsque j'exécute le code suivant:

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

Je suis confronté à l'erreur suivante:

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

Exception dans le fil "principal" Java.lang.NoClassDefFoundError: com/google/common/base/Function


Quelqu'un pourrait-il m'aider à trouver la solution ou la raison?

56
vijaymsc

J'ai eu le même problème, et finalement j'ai trouvé que j'avais oublié d'ajouter Selenium-server-standalone-version.jar . J'avais seulement ajouté le fichier jar du client, Selenium-Java-version.jar .

J'espère que cela t'aides.

110
MaGonglei

Un NoClassDefFoundError est lancé lorsque le JRE ne peut pas trouver une classe. Dans votre cas, il ne peut pas trouver la classe com.google.common.base.Function, que vous n'avez probablement pas ajouté à votre chemin de classe.

MODIFIER

Après avoir téléchargé les bibliothèques suivantes:

et décompressez-les et mettez tous les fichiers JAR dans un dossier appelé lib, la classe de test:

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

couru sans aucun problème.

Vous pouvez compiler et exécuter la classe comme suit:

 # compiler et exécuter sur Linux et Mac 
 javac -cp.: lib/* Test.Java 
 Java -cp.: lib/* Test 
 
 # compiler et exécuter sous Windows 
 javac -cp.; lib/* Test.Java 
 Java -cp.; lib/* Test 
22
Bart Kiers

J'ai rencontré la même erreur et après l'enquête, j'ai découvert que la bibliothèque Selenium-api 2.41.0 requiert Guava 15.0 mais elle a été remplacée par une version plus ancienne. J'ai donc déclaré Guava 15.0 comme dépendance directe en ajoutant la configuration suivante dans pom.xml:

<dependency>
        <artifactId>guava</artifactId>
        <groupId>com.google.guava</groupId>
        <type>jar</type>
        <version>15.0</version>
</dependency>
8
Tho

vous n'avez pas la bibliothèque "google-collections" sur votre classpath .

Il y a un certain nombre de façons d'ajouter des bibliothèques à votre chemin de classe , veuillez donc fournir plus d'informations sur la façon dont vous exécutez votre programme.

si en ligne de commande, vous pouvez ajouter des bibliothèques au classpath via

Java -classpath path/lib.jar ...

7
pstanton

S'il vous plaît inclure tous les fichiers jar de Selenium stand-alone autonome et lib, alors cette erreur sera résolue

2
Sandeep Duve

Pour moi, en plus de sélectionner le fichier jar - Selenium-Java-2.45.0.jar, je devais sélectionner tous les fichiers jar du dossier "libs" sous le dossier racine Selenium.

2
Sumod

J'ai eu le même problème. J'ai constaté que j'avais oublié d'ajouter le fichier Selenium-2.53.0/Selenium-Java-2.53.0-srcs.jar à la bibliothèque de référence de mon projet.

1
Latha

J'ai eu la même erreur, mais cela a été résolu si vous ajoutez les bibliothèques de Selenium (encore une fois si vous ne l'avez pas déjà fait), si vous utilisez INTELIJ

project> projectStructure> Module> +> ajouter les fichiers jar Selenium (à la fois à partir du dossier lib et à l'extérieur.).

La même chose doit être faite pour d'autres IDE, comme Eclipse.

1
Rahul k

On dirait que vous essayez d'importer du code Google:

import com.google.common.base.Function;

Et ce n'est pas le trouver la classe Function. Assurez-vous que toutes les bibliothèques requises sont dans votre chemin de génération et que vous avez correctement saisi le package.

1
donnyton

J'ai rencontré le même problème et j'échoue même après l'installation de 'Selenium-server-standalone-version.jar'. Je pense que vous devez installer les fichiers java guava et guava-gwt ( https://code.google.com/p/guava-libraries / ) également. J'ai ajouté tous ces pots, et finalement cela a fonctionné dans mon PC. J'espère que cela fonctionne pour les autres personnes rencontrant ce problème.

1
Shi Liangjun
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();

modèle :

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

Remarque télécharger gecko à partir d'ici: - http://docs.seleniumhq.org/download/

0
inderpreet kaur

Je voulais essayer un cours simple en dehors de IDE) et ainsi de suite. Ainsi, Selenium Zip a été téléchargé sur le site Web et exécuté comme suit:

Java -cp Selenium-2.50.1/*:Selenium-2.50.1/libs/*:. my/package/MyClass <params>

J'ai eu le problème que j'avais initialement utilisé lib au lieu de libs. Je n'a pas besoin d'ajouter le bocal autonome Selenium. C’est Java 8 qui comprend les caractères génériques dans classpath. Je pense que Java 7 ferait également l'affaire.].

0
akostadinov

J'ai eu le même problème et finalement j'ai oublié d'ajouter le fichier Selenium-server-standalone-version.jar. Je n'avais ajouté que le fichier client, Selenium-Java-version.jar.

0
Lokesh Reddy

Après avoir extrait votre fichier "Selenium-Java-.Zip", vous devez configurer votre chemin de construction à partir de votre IDE. Importez tous les fichiers jar sous le dossier "lib" et les deux serveurs autonomes Selenium & Selenium Java version.

0
CTester

Quand j'ai attrapé l'exception Java.lang.NoClassDefFoundError: com/google/common/base/Function il était dû à des erreurs dans les bibliothèques de projet.

Veuillez le vérifier dans les paramètres de votre projet. Pour Intellij IDEA, allez dans Fichier - Structure du projet et sélectionnez Modules Onglet. Tout ce que je devais faire pour résoudre cette exception était de rajouter la bibliothèque de sélénium

0
Irina Bu