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 :

Problème de compilation en ligne de commande sous Ubuntu.


Sujet :

Langage Java

  1. #1
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut Problème de compilation en ligne de commande sous Ubuntu.
    Bonsoir,
    J'ai deux classes basiques, crééent sous Eclipse (sous Ubuntu)
    La première nommée ouvrir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class ouvrir {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
     
            new fred();
     
        }
     
    }
    Et la seconde nommée fred
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class fred {
        public fred()
        {
            System.out.println("Hello world");
     
        }
     
    }
    Super simple non ? Donc sous Eclipse, j'execute ma classe "ouvrir" en temps qu'application Java, et dans la console, s'inscrit "Hello World". Normal.

    Maintenant, j'ouvre un terminal, je tapes (après m'être positionné dans le répertoir de la classe) et là, voici le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Exception in thread "main" java.lang.NoClassDefFoundError: ouvrir (wrong name: gestecko/bording/ouvrir)
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
            at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    Comment cela se fait ?

    Merci.
    PS : Mon environnement java sous Ubuntu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    java version "1.6.0_03"
    Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
    Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  2. #2
    Membre du Club Avatar de TheEwook
    Inscrit en
    Novembre 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2004
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Salut,

    Il faut d'abord compiler les sources :

    Fait un

    Puis un

    Et la ça devrait fonctionner

  3. #3
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Merci pour ça, mais je ne suis pas non plus un newbee en Java.

    Je n'ai pas inscrit cette étape sur mon post précédent car ça coule de source.
    Merci quand même.

    Quoiqu'il en soit, lorsque je fais un javac ouvrir, j'ai ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    javac ouvrir.java
     
    /* Voici le résultat après appui sur la touche entrée*/
    ouvrir.java:11: cannot find symbol
    symbol  : class fred
    location: class gestecko.bording.ouvrir
                    new fred();
                          ^
    1 error
    Ce que je ne comprends pas, c'est que tout fonctionne sur Eclipse et pas en ligne de commande.
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  4. #4
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Si ta compilation en marche pas c'est normal que tu ne puisse pas faire l'exécution. Le problème doit être surment l'ordre de tes compilations. Si tu compile ta classe ouvrir avant ta classe fred ça na va pas marcher. En effet à la compilation de la classe ouvrir il va rechercher la classe fred et ne la trouvera pas.
    Tu peux faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    javac fred.java
    javac ouvrir.java
    java ouvrir
    ou même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    javac *.java
    java ouvrir
    En espérant t'aider
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    D'après le message d'erreur de compilation, il semble que ta classe ouvrir appartient à un package nommé "gestecko.bording".

    Si c'est le cas, essayes donc lancer la commande java gestecko.bording.ouvrir pour démarrer ton programme, depuis le répertoire parent au répertoire gestecko.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java gestecko.bording.ouvrir
    Courage.

  6. #6
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    J'ai essayé tout ce qu'il y a au dessus, et décidemment, je ne sais pas ce qui se passe mais ça ne marche pas.
    Toujours les mêmes erreurs.

    Pour la compilation de fred.java, je l'avais déjà fais avant de compiler ouvrir.java.

    J'avoue que je ne comprends pas ce qu'il se passe car lorsque je compile et execute depuis Eclipse, je n'ai pas de soucis.

    Je viens de refaire un test. Si je mets mes classes dans des packages, j'ai des problèmes de compilation. Si je les mets dans le package par défaut, tout est Ok.

    Pas Bon :
    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
     
    package com.gestion.ihm;
     
    public class Ouvrir {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Raccord de méthode auto-généré
            new Fred();
     
        }
     
    }
    Bon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    public class Ouvrir {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Raccord de méthode auto-généré
            new Fred();
     
        }
     
    }
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  7. #7
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Je pense avoir trouver la solution, il ne faut pas que je compile directement dans le repertoire du .java mais à la racine des packages.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    javac com/gestion/ihm/Fred.java
    /* et */
    javac com/gestion/ihm/Ouvrir.java
    /* et */
    java com/gestion/ihm/Ouvrir
    /* Là, c'est bon */
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Ben oui, c'est ça tout simplement

    Comme quoi, il faut toujours apprendre à faire les choses à la main avant de passer sur un IDE

  9. #9
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Je te rassure, je fais les choses à la main, j'utilise l'IDE pour générer du code exemple ou des choses de ce genre.

    Maintenant, Linux Ubuntu y est aussi pour quelque chose car sur windob, je n'est pas ce problème. Je compile directement à l'emplacement du Java et pas à la racine des packages.

    Enfin, j'ai trouvé la soluce donc plus de soucis.

    Bonne journée.
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Le problème ne vient pas de la compilation, mais de l'exécution.

    Tu peux compiler un fichier peu importe l'endroit. Tu dois juste exécuter une application à la racine de ses packages (testé sur Ubuntu, Windows, Mac ).

  11. #11
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Même la compil me donnait des erreurs si je ne la faisais pas à la racine.

    Enfin, va savoir, je me suis peut être planté.

    Merci en tout cas pour cette précision.
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 53
    Points : 48
    Points
    48
    Par défaut
    C'est tres avantageux de compiler à la main

    En outre, la meme erreur est affichée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    java:374: cannot find symbol
    symbol  : class Instances
    lorsque j'utilise un .jar dans une des classes java.
    Sinon comment peut-on preciser les arguments d'un programme java pour compiler en ligne de commandes ?


    Merci d'avance,
    youza

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

Discussions similaires

  1. Problème compilation en ligne de commande et package
    Par totoAussi dans le forum Général Java
    Réponses: 1
    Dernier message: 04/11/2012, 19h28
  2. [Ubuntu] Compilation d'OpenCV avec Qt
    Par jean_pierr dans le forum OpenCV
    Réponses: 0
    Dernier message: 22/08/2012, 05h14
  3. Réponses: 4
    Dernier message: 29/05/2012, 23h27
  4. Problème basique de compilation en ligne de commande
    Par Dark_TeToN dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 12/01/2012, 08h49
  5. [WebForms][CR] Compilation en ligne de commande et etat Crystal
    Par David.V dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 01/02/2009, 23h58

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