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 :

Appelé une class dans le programme main


Sujet :

Langage Java

  1. #21
    Membre averti Avatar de Rayndell
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 289
    Points : 323
    Points
    323
    Par défaut
    J'ai trouvé ton problème : à mon avis tu dois lancer java Generator ou java Exemple. Or tes classes font partie d'un package spécifique, tu dois donc te mettre à la racine de ton application et lancer java lih.rtdb.simrtdb.generator.Generator.
    "Et tu comprendras pourquoi mon nom est l'Eternel, quand sur toi s'abattra la colère du Tout-puissant."

  2. #22
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Points : 11
    Points
    11
    Par défaut
    oui je suis a la racine mais la meme chose!!!!

  3. #23
    Membre averti Avatar de Rayndell
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 289
    Points : 323
    Points
    323
    Par défaut
    Es-tu sûr d'avoir bien respecté ton architecture ? J'aurais besoin de trois choses :
    - le dossier dans lequel tu es lorsque tu lances la commande,
    - la commande exacte que tu lances
    - l'architecture de ton application (pas le code, juste la structure de répertoires).
    "Et tu comprendras pourquoi mon nom est l'Eternel, quand sur toi s'abattra la colère du Tout-puissant."

  4. #24
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    salut,
    comme t'as dit Rayndell tu doit te placer dans le répertoire contenant lih.rtdb.simrtdb.generator et éxécuter cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java lih.rtdb.simrtdb.generator.Generator

  5. #25
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    salut,
    c'est quoi le nom du répertoire où se trouve tes fichiers .java?

  6. #26
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Points : 11
    Points
    11
    Par défaut
    salut
    j ai executer generator.java sur ce repertoire : C:\SimrtDB\lih\rtdb\simrtdb\generator et exemple.java sur ce repertoire : C:\SimrtDB\lih\rtdb\simrtdb\generator\Exemple
    voila les deux fichier:
    generator.java
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    package lih.rtdb.simrtdb.generator;
    import lih.rtdb.simrtdb.generator.*;
    import lih.rtdb.simrtdb.data.*;
    import java.util.*;
     
    /**
     * It is the class that permit to create arrival time using Poisson process
     * @author <a href="mailto:Majed.Abdouli@univ-lehavre.fr">Majed Abdouli</a>
     */
    public class Generator{
     
        private Random generator;
        private GlobalClock refGlobalClock;
     
        /**
         * Default Constructor
         */
        public Generator (GlobalClock refGlobalClock, Random generator){
    	this.generator = generator;
    	this.refGlobalClock = refGlobalClock;
        }
     
    public static void main(String argv[])
    {
    GlobalClock C = new GlobalClock();
    Random R = new Random();
    Generator G =new Generator(C,R);
    DataBase db;
    db = G.generateDataBase(10,true,false);
    System.out.println("bdbdbdbdbdbd");
        System.out.println("Data base crée avec succee");
        }
     
        /**
         * Generate a new DataBase 
         * @param numberOfData the number of data item to generate in the database
         * @param data this value permit to specify if non real time data must be generated
         * @param realtimedata this value permit to specify if real time data must be generated
         */
        public DataBase generateDataBase (int numberOfData, 
    				      boolean data, boolean realtimedata){
    	DataBase db = new DataBase (numberOfData, generator);
    	for (int i=0; i<numberOfData; i++) {
     
    		    db.add (Data.generateOne(i));
     
    	}
    	return db;
        }
     
        }
    exemple.java
    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
    package lih.rtdb.simrtdb.generator;
    import lih.rtdb.simrtdb.data.*;
    import java.util.*;
    import java.io.*;
     
    public class Exemple{    
        public static void main(String argv[])
    {
    GlobalClock C = new GlobalClock();
    Random R = new Random();
    Generator G =new Generator(C,R);
    DataBase db;
    db = G.generateDataBase(10,true,false);
    System.out.println("bdbdbdbdbdbd");
        System.out.println("Data base crée avec succee");
        }
        }
    je travaille sous DOS mon jdk est installer sous ce repertoire :
    C:\Program Files\Java\jdk1.6.0
    sous le meme repertoire java j'ai repertoire jre1.5.0 et jre1.6.0
    mes variables d'environnement utilisateur pour administrateur sont les suivante :
    CLASSPATH :C:\SimrtDB\class;C:\Program Files\Java\jdk1.6.0\src.jar
    JAVA_HOME : C:\Program Files\Java\jdk1.6.0

    et j obtient l erreure suivante lorsque j execute generator.java ou exemple.java (aprés compiler bien sur) :
    lorsque j'execute generator l'erreure est :
    Execption in thread "main" java.lang.NoClassDefFoundError : generator
    et lorsque j excute exemple c'est la meme
    Execption in thread "main" java.lang.NoClassDefFoundError : exemple
    voila ma situation c'est quoi la solution SVP pour que l'excution soit correcte???

  7. #27
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    salut,
    bon la faute est claire.
    je te propose de renommer le package contenant les classes en generator seulement et non pas lih.rtdb.simrtdb.generator
    puis lance java generator.Generator depuis le répertoire contenant le répertoire generator.

  8. #28
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Points : 11
    Points
    11
    Par défaut
    j ai fait exactement comme tu ma dit l erreurs est :
    Execption in thread "main" java.lang.NoClassDefFoundError : generator\generator
    Ce matin j ai testé sur le PC d un amie et ça marché avec exemple.java je sait pas sur mon PC pourqoui ça ne marche pas

  9. #29
    Membre averti Avatar de Rayndell
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 289
    Points : 323
    Points
    323
    Par défaut
    Citation Envoyé par Rayndell
    J'ai trouvé ton problème : à mon avis tu dois lancer java Generator ou java Exemple. Or tes classes font partie d'un package spécifique, tu dois donc te mettre à la racine de ton application et lancer java lih.rtdb.simrtdb.generator.Generator.
    Je vais sans doute avoir l'impression de me répéter, mais tant pis, puisqu'on te propose des solutions et que tu ne les appliques pas correctement. Voilà :

    Lorsque tu déclares une classe comme appartenant à un package spécifique, tu dois toujours appeler ton code (tu appelles le .class, pas le .java) par java nom_COMPLET_du_package.nom_de_la_classe.

    Donc si ton Chose.class est déclaré comme faisant partie du package truc.machin.bidule, TU DOIS TE PLACER DANS LE REPERTOIRE CONTENANT truc, et lancer la commande : java truc.machin.bidule.Chose.

    De façon à respecter le classpath de ton application, car Java est un langage particulièrement structuré. Donc pour lancer correctement ton application (si tu gardes les mêmes packages que dans ton code), TU DOIS TE PLACER AVEC UNE LIGNE DE COMMANDES DANS LE REPERTOIRE C:\SimrtDB et lancer la commande suivante : java lih.rtdb.simrtdb.generator.Generator.

    Si tu dis encore que ça ne marche pas et qu'il ne trouve pas la classe, ça veut dire que ton .class n'est pas au bon endroit.
    "Et tu comprendras pourquoi mon nom est l'Eternel, quand sur toi s'abattra la colère du Tout-puissant."

Discussions similaires

  1. Appeler une méthode dans la classe main
    Par Palsajicoco dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 04/05/2011, 11h40
  2. Réponses: 10
    Dernier message: 03/04/2011, 11h36
  3. Appeler une classe dans un autre package
    Par Nasky dans le forum Langage
    Réponses: 6
    Dernier message: 21/02/2007, 16h06
  4. Réponses: 18
    Dernier message: 06/11/2006, 21h32
  5. appel à une fonction dans la classe Action
    Par imane_bennouna dans le forum Struts 1
    Réponses: 3
    Dernier message: 07/08/2006, 11h09

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