Java : ClassNotFoundException

  • Auteur de la discussion sisier
  • Date de début

sisier

Grand Maître
Hello tout le monde,

Je reprend peu à peu le java avec eclipse.
Je suis entrain de faire un petit exo pour me remettre dans le bain.

Mais j'ai des erreurs de ClassNotFoundException à l'éxécution.
J'ai fait un débug de mon appli pour voir ce qui ne convient pas.
Si je passe les erreurs, il va bien dans mes class :??:

J'ai fait des recherches sur le net. J'ai vu qu'on parlait de classpath.
J'ai donc été regardé les propriété de mon projet.
Mais quand je regarde le JavabuildPath, il désigne bien le répertoire où sont les sources de mon projet.

Cela doit pas être grand chose mais je suis un peu perdu.

J'ai essayé d'isoler le problème en faisant un petit exemple.

Mais cela ne passe pas non plus.

Voici le code :

[cpp]package Mediatheque;

import java.util.Hashtable;

public class Adherent{
private String nom;
private String prenom;
private String adresse;
private Hashtable <Integer,Pret>lstEmprunt;

Adherent(String nom, String prenom,String adresse )
{
this.lstEmprunt = new Hashtable<Integer,Pret>();
this.nom = nom;
this.prenom = prenom;
this.adresse = adresse;
}

public Exemplaire emprunter(Oeuvre oeuvre)
{
Exemplaire exemplaireTemp;
exemplaireTemp = oeuvre.empruntExemplaire();
System.out.println(exemplaireTemp.numExemplaire);
lstEmprunt.put(exemplaireTemp.numExemplaire, new Pret(exemplaireTemp));

return exemplaireTemp;
}

public static void main(String [] args)
{
try
{
/*Adherent adherent = new Adherent("Joseph","Bauve","14 rue de la grange");

String titre = "BestOfLouisMariano";
String auteur = "Louis Mariano";
int nombreExemplaire = 3;
Varietee varietee = new Varietee(titre,auteur,nombreExemplaire);

Exemplaire exemplaire = adherent.emprunter(varietee);*/

Test toto = new Test();
Throwable error = new Throwable();
error.getCause();


}catch(Exception e)
{
e.printStackTrace();
}

}
}


[/cpp]

Et voici la class Test (il y a rien dedans, c'etait juste pour tester) :

[cpp]package Mediatheque;

public class Test {

}[/cpp]

Une petite idée?

Merci pour votre aide :)






 

hannes

Nouveau membre
et c'est quoi le nom de la classe qui n'est pas trouvée?
 

sisier

Grand Maître
ben c'est juste la ligne :

Test toto = new Test();

qui me renvoit une erreur.
 

sisier

Grand Maître
[cpp]ClassNotFoundException(Throwable).<init>(String, Throwable) ligne : 217
ClassNotFoundException(Exception).<init>(String, Throwable) ligne : non disponible
ClassNotFoundException.<init>(String) ligne : non disponible
ClassLoader.findBootstrapClass(String) ligne : non disponible [méthode native]
Launcher$ExtClassLoader(ClassLoader).findBootstrapClass0(String) ligne : non disponible
Launcher$ExtClassLoader(ClassLoader).loadClass(String, boolean) ligne : non disponible
Launcher$AppClassLoader(ClassLoader).loadClass(String, boolean) ligne : non disponible
Launcher$AppClassLoader.loadClass(String, boolean) ligne : non disponible
Launcher$AppClassLoader(ClassLoader).loadClass(String) ligne : non disponible
Launcher$AppClassLoader(ClassLoader).loadClassInternal(String) ligne : non disponible
Adherent.main(String[]) ligne : 42 [/cpp]

Voila les erreurs, si cela peut aider :/
 

hannes

Nouveau membre
essai de lancer le programme depuis la ligne de commande
parceque si les deux classes se trouvent dans le meme repertoire "mediatheque", ca doit marcher
 

sisier

Grand Maître
Bonjour,

merci pour ta réponse.
j'ai essayé mais j'ai toujours cette erreur :fou: .

J'ai isolé la class adherent.
et j'ai ces erreurs suivantes (visibles qu'en debut pas en execution classique)
Quand j'arrive sur mon constructeur adherent :
[cpp]Adherent(Object).<init>() ligne : 20 [variables locales non disponibles]
Adherent.<init>(String, String, String) ligne : 12
Adherent.main(String[]) ligne : 35[/cpp]

Et quand j'arrive à l' accolade pour quitter mon main :
[cpp]Thread.exit() ligne : non disponible [variables locales non disponibles] [/cpp]

voici le code :
[cpp]package Mediatheque;

import java.util.Hashtable;
import java.lang.String;

public class Adherent{
String nom;
String prenom;
String adresse;
Hashtable<Integer,Pret>lstEmprunt;

public Adherent(String nom1, String prenom1,String adresse1)
{
this.lstEmprunt = new Hashtable<Integer,Pret>();
this.nom = nom1;
this.prenom = prenom1;
this.adresse = adresse1;
}


public Exemplaire emprunter(Oeuvre oeuvre)
{
Exemplaire exemplaireTemp;
exemplaireTemp = oeuvre.empruntExemplaire();
System.out.println(exemplaireTemp.numExemplaire);
//lstEmprunt.put(exemplaireTemp.numExemplaire, new Pret(exemplaireTemp));

return exemplaireTemp;
}

public static void main(String [] args)
{
try
{
Adherent adh = new Adherent("Joseph","Bauve","14 rue de la grange");


String titre = "BestOfLouisMariano";
String auteur = "Louis Mariano";
int nombreExemplaire = 3;
//Varietee varietee = new Varietee(titre,auteur,nombreExemplaire);

//Exemplaire exemplaire = adherent.emprunter(varietee);



}catch(Exception e)
{
e.printStackTrace();
}

}




}[/cpp]

cela me parait bon pourtant :??:
Ou alors, c'est des erreurs de debugage inevitable?



 

magellan

Modérâleur
Staff
Dans eclipse va sous project / properties puis sur java build path, tu as probablement un import qui n'est pas bon comme par exemple la JRE qui n'est pas bien paramétrée (chemin) ou bien carrément les variables d'environnement du poste qui pointent sur une version différente de java.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 845
Membres
1 586 373
Dernier membre
https://forum.tomshardwar
Partager cette page
Haut