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

avec Java Discussion :

Erreur : Classe principale introuvable


Sujet :

avec Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 50
    Par défaut Erreur : Classe principale introuvable
    Bonjour,

    Je débute en Java et salue toute la communauté.

    Je rencontre une difficulté que je n'arrive pas à résoudre.

    Lorsque j'ajoute une ligne "import" en début de code, j'obtiens l'erreur :

    "Classe principale MaFenetre introuvable."

    L'erreur s'affiche lorsque je crée un exécutable avec le programme JavaExe.exe, mais ne s'affiche pas lorsque je lance le programme via la console avec "java.exe".

    Je remarque que dans les codes dont la class principale n'est pas précédée d'une ligne "import", cette erreur n'apparaît pas et le programme se déroule bien.


    Sauriez-vous l'origine de cette erreur et la manière de l'éviter ?

    Je vous remercie de votre aide.

    Mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    import javax.swing.*;
    class MaFenetre {
        public static void main(String[] args) {
     
          JFrame fenetre = new JFrame();
     
        //Définit un titre pour notre fenêtre
        fenetre.setTitle("Ma première fenêtre Java");
        //Définit sa taille : 400 pixels de large et 100 pixels de haut
        fenetre.setSize(400, 100);
        //Nous demandons maintenant à notre objet de se positionner au centre
        fenetre.setLocationRelativeTo(null);
        //Termine le processus lorsqu'on clique sur la croix rouge
        fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //Et enfin, la rendre visible        
        fenetre.setVisible(true);   
      }       
    }

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 764
    Par défaut
    Bonjour,

    A tout hasard, et surtout parce que je ne le vois pas apparaître dans le code que tu as posté :
    As-tu inséré un package en tout début de ton code ?

    Peux-tu nous donner plus de code afin que l'on voit ?

    Car l'erreur que tu dis peut ne pas provenir de la classe "MaFenetre".

    En effet, si cette classe ou une de ses instances est appellée depuis une autre classe, il se peut que tu n'aie pas importé la classe MaFenetre comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import nom_du_package/MaFenetre
    là où il y a inscrit 'nom_du_package' il te faut inscrire le nom de toin package !

    Mais en même temps si ton programme s'exécute via la console, c'est bizare qu'il ne donne pas d'erreurs !

    Bonne soirée et bon courage !

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Heuu, on met des points (.) dans des import, pas des /

  4. #4
    Membre averti

    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Par défaut
    as-tu essayé en déclarant ta classe principale en public : "public class MaFenetre { ... }"
    mets un try/catch dans le main() qui englobe tout le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public static void main(String[] args)
    {
    try
    {
    ...
    }
    catch(Throwable ex) { System.out.println(""+ex); }
    }

  5. #5
    Membre averti

    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Par défaut
    je ne reproduit pas le pb avec ton code, ni avec JavaExe 3.1, ni avec la 3.2
    quelle version utilises-tu ? et quelle version de Java ? 32bits ou 64bits ?

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 50
    Par défaut
    Grand merci à tous pour l'attention que vous avez portée à ma question.

    Citation Envoyé par francky74 Voir le message
    Bonjour,

    A tout hasard, et surtout parce que je ne le vois pas apparaître dans le code que tu as posté :
    As-tu inséré un package en tout début de ton code ?

    Peux-tu nous donner plus de code afin que l'on voit ?
    Non, pas de package. J'apprends et je crée ou prends sur le net des petits codes que je teste.
    Le code inséré dans mon premier message est complet.

    Citation Envoyé par tchize_
    Heuu, on met des points (.) dans des import, pas des /
    Ma ligne d'import ne contient pas de /

    Citation Envoyé par _DwzR_
    as-tu essayé en déclarant ta classe principale en public : "public class MaFenetre { ... }"
    mets un try/catch dans le main() qui englobe tout le code

    je ne reproduit pas le pb avec ton code, ni avec JavaExe 3.1, ni avec la 3.2
    quelle version utilises-tu ? et quelle version de Java ? 32bits ou 64bits ?
    En déclarant la classe en public, je n'ai pas plus de succès.
    Le try/catch n'affiche pas d'erreur.
    J'utilise JavaExe 3.2 , Java 1.8.0_25 et mon ordi fonctionne en 64 bits.

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tu peux nous faire une capture de ton message d'erreur? Capture d'écran, copier / coller de la console ou autre. Vu d'ici je ne vois pas trop comment ce message se présente ni d'où il sort. Décris nous aussi tout ton processus de compilation avec des copies éventuelles des consoles que tu obtiens au fur et à mesure de la préparation de ton .class puis de ton .exe. Tu peux aussi poster dans un zip le projet et l'exe généré?

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 50
    Par défaut
    Captures d'écran retirées

  9. #9
    Membre averti

    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Par défaut
    ton windows est en 64bits, mais qu'en est-il du JRE que tu utilises ?
    lance dans une console DOS : java -version

    JavaExe et le JRE doivent être du même format, soit 32bits tous les deux, soit 64bits tous les deux.

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 50
    Par défaut
    Tu as trouvé l'origine de l'erreur. J'utilisais en effet la version 32 bits de JavaExe alors que mon système utilisait Java 64 bits...
    JavaExe fait maintenant bien son travail.

    Grand merci à tous pour avoir fait avancer la question et à toi _DwzR_ pour ta sagacité.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/06/2014, 09h35
  2. Réponses: 1
    Dernier message: 04/12/2012, 11h48
  3. "Erreur : impossible de trouver ou charger la classe principale"
    Par sassou409 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/01/2012, 15h01
  4. Réponses: 4
    Dernier message: 06/10/2011, 18h09

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