IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

NoclassDefFoundError classe main [debutant]


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Par défaut NoclassDefFoundError classe main [debutant]
    Salut à tous,
    ça a l'air d'une exception simple, mais j'arrive pas à la résoudre.
    quand je compile ma classe java sur Eclipse, j'ai une exception de type:NoclassDefFoundError
    j'ai bien vérifié la classpath, c'est bon.
    mon code contient bien une méthode main qui sert d'entrée du programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void main (String args){
     
        try {
            ArrayList test = new ArrayList();               
            BufferedReader lecteur = new BufferedReader(new FileReader("C:/data.txt"));
            ........
    }
    je comprends pas

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par flora806 Voir le message
    je comprends pas
    Moi non plus : puisque tout est correct cela devrait marcher...


    ...



    Si tu ne donnes pas plus d'informations personne ne pourra t'aider :
    • Quel est ton arborescence ?
    • Que comporte ton classpath ?
    • Quelle ligne de commande tu utilises pour ton application ?



    a++

  3. #3
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,


    Moi non plus : puisque tout est correct cela devrait marcher...
    Coucou,

    Non tout n'est pas correct à vrai dire.

    Ta fonction main doit être déclarée en static, pour pouvoir être appelée sans devoir instancier la classe qui la contient.

    Cordialement

    Fred

  4. #4
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour.
    En continuant sur cette voie, y'a aussi la signature de main qui est incorrecte, il faut mettre String[] au lieu de String.

    Bonne chance.

  5. #5
    Membre éclairé
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Par défaut
    Ta fonction main doit toujours être déclarée de la façon suivante. Et pour pouvoir utiliser le BufferReader, il faut faire un import (je suppose que tu l'as fait, mais je le précise quand même )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import java.io.*;
    public static void main (String[] args){   
        try {
            ArrayList test = new ArrayList();               
            BufferedReader lecteur = new BufferedReader(new FileReader("C:/data.txt"));
            ........
    }
    Edit: grillé sur la dernière correction...

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Par défaut
    Bonjour à tous,
    je viens de rajouter "static" à ma déclaration de méthode main et String []:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     public static void main (String[] args) {             
        try {
             ArrayList <String> temp = new ArrayList <String>();
              BufferedReader lecteur = new BufferedReader(new FileReader("C:data.txt"));
            String ligne;
              while ( (ligne=lecteur.readLine())!=null )  {
                temp.add(ligne);
                this.ncol = Math.max(this.ncol,ligne.split(" ").length);
    .....
    ...........}
    mon fichier contient des entiers sur plusieurs lignes,je fais une lecture de ligne, je veux spécifier après les lignes et les colonnes et quand j'utilise "this", mon compilateur n'accepte pas parce que ce n'est pas utilisé dans un contexte "static"
    je fais comment à votre avis
    Merci..

  7. #7
    Membre confirmé Avatar de fisico
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 98
    Par défaut
    "this" référe à l'instance courante... quelque chose qui est static ne fait pas référence une instance, c'est qqch qui est commun à toutes les instances. Il te manque des bases là en Java.

    Fais des recherches sur static au cas où...

  8. #8
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Par défaut
    je viens de lire une doc sur le sujet, je sais que static n'est pas liée à une instance de classe..alors que "this" représente une instance courante de la classe.
    Mais, je ne sais pas toujours comment réexprimer mon code et tou particulièrement la ligne:

    this.ncol = Math.max(this.ncol,ligne.split(" ").length);.....

    N.B: je suis encore débutante

  9. #9
    Membre confirmé Avatar de fisico
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 98
    Par défaut
    "ncol" vient d'où parce que dans ton code que tu as montré, on ne voit pas cette variable.

Discussions similaires

  1. Réponses: 20
    Dernier message: 01/03/2011, 13h08
  2. [Debutant]Exception NoClassDefFoundError dans main
    Par Mystnux dans le forum Langage
    Réponses: 4
    Dernier message: 17/06/2006, 13h24
  3. [JAR]Création de Jar -> trouve pas la classe main
    Par Zapan dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 28/01/2006, 12h17
  4. Réponses: 15
    Dernier message: 29/12/2005, 11h32
  5. [ERREUR] Ne retrouve pas la classe main
    Par Anathema dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 06/07/2005, 17h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo