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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné 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 : 48
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    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)

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

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

    Il faut d'abord compiler les sources :

    Fait un

    Puis un

    Et la ça devrait fonctionner

  3. #3
    Membre chevronné 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 : 48
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    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.

  4. #4
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    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
    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

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    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 chevronné 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 : 48
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    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();
     
        }
     
    }

+ 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