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 :

[Débutant]Compiler dans le shell


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 26
    Par défaut [Débutant]Compiler dans le shell
    ouai je sais je suis nul...



    Bonsoir a tous.

    J' aimerais bien avoir un peu t' aide pour le java, y aurais moyen ??

    Bon en fait, je débute le java cette année, et c' est un peu dur. J' ai essayé d' installer un compilateur sous Windows, mais ça marche pas très bien...

    Voila le probleme:
    J' ai installé "jdk-1_5_0_08-windows-i586-p.exe" et ensuite j' ai mis dans "variables d' environnement":
    CLASSEPATH: c:\Program Files\Java\jdk1.5.0_07\lib
    JAVA_HOME: c:\Program Files\Java\jdk1.5.0_07
    PATH: c:\Program Files\Java\jdk1.5.0_07\bin

    Quand je met mes deux fichiers dans un répertoire et que je compile en faisant javac *.java, il n' y a pas de problème. Par contre au moment de faire "java xxxx", on m' indique: ..."main" java.NoClassDefFoundError

    Pour info, j' utilise des packages (je sais pas trop a quoi sa sert, mais le prof a dit de faire comme ça)
    Voici mes deux fichiers ( qui marchaient tres bien sous Linux a la fac)

    CompteurSimple.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
    package tp.compteur;
     
    public class CompteurSimple{
        int i,j;
     
        public CompteurSimple(){
            //this.i=i;
            i=50;
        }
     
        public void incrementer(){
            i=i+1;
        }
     
        public void decrementer(){
            i=i-1;
        }
     
        public int getValeur(){
            return i;
        }
     
        public String toString(){
            return "la valeur est:" + i;
        }
    }
    TestCompteurSimple.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
     package tp.test;
     
    import tp.compteur.CompteurSimple;
     
    public class TestCompteurSimple{
     
        public static void main (String[]args){
            CompteurSimple gf=new CompteurSimple();
            System.out.println(gf);
            gf.incrementer();
            System.out.println(gf);
            gf.decrementer();
            System.out.println(gf);
        }
    }
    Et donc au moment de faire "java TestCompteurSimple", j' obtient le message d' erreur "main" java.NoClassDefFoundError.

    Quelqu' un aurait une idée pour m' aider ??

    Merci a tous




    Bonne soirée

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Tu doix spécifier le nom complet (package compris) de ta classe à la commande java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java tp.test.TestCompteurSimple
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 26
    Par défaut
    Ok merci pour la réponse rapide.

    J' ai tapé "java tp.test.TestCompteurSimple", et de nouveaux j' ai eu encore le meme message d' erreur.

    En fait peut etre que j' ai mal compilé ??

    Quand je fais *.java, il n' ya pas de message d' erreurs.

    Par contre quand je compile en faisant "java CompteurSimple.java", j' obtient CompteurSimple.class
    Ensuite je compile l' autre en faisant "java TestCompteurSimple.java", et la j' obtient:



    J' ai peut être mal tapé quelques chose ??

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    => pas de E dans CLASSPATH !

    Ajouter le repertoire du JDK est un peu inutile. A savoir que le repertoire lib/ext du JRE est automatiquement ajoute au CLASSPATH (et les JARs contenus a l'interieur sont automatiquement utilises) via le mecanismes des Extensions. Note : celui du JRE interne au JDK est utilise quand on utilise des outils du JDK, pas les programmes du JRE publique (il y a (au moins) deux JRE sous Windows : un publique et un prive interne au JDK).

    Sinon il peut etre interressant de specifier le repertoire courant via :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp . <le reste de la ligne>...
    et egalement d'y ajouter le repertoire dans le quel sont compiles les packages, les classes (si ce n'est pas le meme que le repertoire courant).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    java -cp .;build <le reste de la ligne>... (windows)
    java -cp .:build <le reste de la ligne>... (unix)
    Pour java le flag -cp est l'equivalent du flag -classpath ; pour javac il faut utiliser le flag -classpath. le flag -d permet de specifier a javac dans quel repertoire il doit generer les packages (donc -d . ou -d build ou -d classes, ...)
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 26
    Par défaut
    Merci de ta réponse Bouye

    Mais le probleme, c' est que TestCompteurSimple.java ne compile meme pas :s
    (meme si j' ai bien compiler CompteurSimple.java


    j' ai essayer aussi de faire javac .d . TestCompteurSimple.java, mais ça ne marche toujours pas...

  6. #6
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Un package, concrètement représente une arborescence de répertoire. Il te dis que le package n'existe pas, tu dois donc créér les répertoires ./tp/test et ./tp/compteur et mettre dedans les classes qui appartiennent au package correspondant.
    --> voir classpath...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 26
    Par défaut
    Je suis sur le cul, avec tous vos conseille, ça marche niquel.

    Je sais pas comment vous remercier



    NB: @iohack: tu m' indique la FAQ, mais quand je clic au dessus du forum, sur FAQ, sa m' envoie la: http://www.developpez.net/forums/faq.php , et sa ne parle pas de CLASSPATH :s

    Tu peux me filer le lien de la FAQ que tu me parles ??

    Merci

  8. #8
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Citation Envoyé par Olivier95000
    Je suis sur le cul, avec tous vos conseille, ça marche niquel.

    Je sais pas comment vous remercier



    NB: @iohack: tu m' indique la FAQ, mais quand je clic au dessus du forum, sur FAQ, sa m' envoie la: http://www.developpez.net/forums/faq.php , et sa ne parle pas de CLASSPATH :s

    Tu peux me filer le lien de la FAQ que tu me parles ??

    Merci
    Moi non plus je n'ai pas retrouvé le sujet sur le classpath dans la faq, en revanche dans les tutoriaux java tu trouveras de bonnes information. Exemple : http://tahe.ftp-developpez.com/fichi...chive/java.pdf
    Après faire une recherche sur "classpath".
    Voilà

  9. #9
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par Olivier95000
    j' ai essayer aussi de faire javac .d . TestCompteurSimple.java, mais ça ne marche toujours pas...
    => javac -d . TestCompteurSimple.java

    Le flag -d te genere automatiquement les repertoires correspondants aux packages des classes dans le repertoire passe en argument.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 26
    Par défaut
    Citation Envoyé par bouye
    => javac -d .

    Le flag -d te genere automatiquement les repertoires correspondants aux packages des classes dans le repertoire passe en argument.
    Ouai c' est exactement ce qu' il s' est produit.
    Merci pour votre taff

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 26
    Par défaut
    C' est bizard car j' ai réutiliser la même méthode avec d' autres fichiers, mais la j' ai eu un message d' erreur :s

    dans un dossier java j' ai mis:

    Chronometre.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
    package tp.compteur;
    import tp.compteur.CompteurCyclique;
     
    public class Chronometre{
    	private CompteurCyclique minutes;
    	private CompteurCyclique secondes;
     
    	public Chronometre(){
    	minutes = new CompteurCyclique(0,59);
    	secondes = new CompteurCyclique(0,59);
    	}
     
    public void incrementer(){
    	secondes.incrementer();
    	if(secondes.getValeur() == secondes.getMin()){
    		minutes.incrementer();
    	}
    }
     
    public void decrementer(){
    	secondes.decrementer();
    	if(secondes.getValeur() == secondes.getMax()){
    		minutes.decrementer();
    		}
     
    }
     
    public String toString(){
    	return minutes +"min" + ":" + secondes + "sec";
     
    	}
    }
    CompteurCyclique.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
    package tp.compteur;
    public class CompteurCyclique{
    	private int vcours,bmin,bmax;
     
    public CompteurCyclique(int min,int max){
    	this.bmin=min;
    	this.bmax=max;
    	this.vcours=min;
    	}
     
    	public void incrementer(){
     
    	vcours=vcours+1;
    	if(vcours > bmax) {
    		vcours=bmin;
    		}
     
    	}
    	public void decrementer(){
    	vcours=vcours-1;
    	if(vcours<bmax) {
    		vcours=bmax;
    		}
     
    	}
     
    	public int getValeur(){
    	return vcours;
    	}
     
    	public int getMin(){
    	return bmin;
    	}
     
    	public int getMax(){
    	return bmax;
    	}
     
    	public String toString(){
    	return "Chrono :" + vcours;
     
    	}
     
    }
    TestChronometre.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    package tp.test;
    import tp.compteur.Chronometre;
    public class TestChronometre{
    	public static void main (String[]args){
    	Chronometre gf=new Chronometre();
    	for(int i=0;i<120;i++){
    		System.out.println(gf);
    		gf.incrementer();
    			}
    	}
    }
    j' ai fait "javac -d . *java"
    puis "java -cd .; tp.test.TestChronometre"
    Tout a l' heure ça marchait niquel avec les deux autres fichiers, mais avec ceux la, j' ai ce message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Unrecognized option: -cd
    Could not create the Java virtual machine
    Je pense que j' ai du mal taper dans le shell pour compiler... Vous avez une petite idée ??

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

Discussions similaires

  1. [Débutant] Inline dans C++ sur gcc compiler, copier a dans b
    Par Le Kamikaze dans le forum Assembleur
    Réponses: 0
    Dernier message: 15/09/2011, 17h05
  2. Problème de compilation dans le shell
    Par fab76000 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 26/05/2008, 16h33
  3. [Simulink][Débutante] Erreur de compilation dans un code
    Par karamellati dans le forum MATLAB
    Réponses: 4
    Dernier message: 30/05/2007, 11h47
  4. [Servlet][Compilation] Erreur de compil dans code servlet
    Par gandalf_le_blanc dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 13/05/2004, 10h17
  5. [Débutant] Modifs dans Delphi
    Par J-P-B dans le forum XMLRAD
    Réponses: 6
    Dernier message: 20/06/2003, 15h55

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