Débutant en java. Problème à l'exécution

Fermé
niklaus Messages postés 5 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 4 avril 2005 - 31 mars 2005 à 02:58
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 - 4 avril 2005 à 11:17
Salut,

je débute en programmation et j'essaye en ce moment de faire un petit jeu en java (trouver un nombre entre 1 et 1000 avec affichage de HighScore).
J'utilise visual studio net 2003 pour entrer mon code et je procède "par projet". En compilant et en exécutant depuis visual studio, tout marche très bien! Mais dès que j'essaye de compiler "à la main", une tonne d'erreurs est renvoyée (sauf si je tape javac *.java).
De plus quand j'essaye de lancer les programme moi même depuis le DOS j'ai le message d'erreur "java.lang.NoClassDefFoundError".
Je pense avoir configuré correctement mes variables d'environnement.
Que faire???

Merci d'avance.
A voir également:

7 réponses

maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
31 mars 2005 à 11:01
Bonjour!

Est ce que tu te positionnes dans le bon répertoire quand tu veux compiler "à la main"? Quelle est ta démarche exacte?
0
niklaus Messages postés 5 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 4 avril 2005
1 avril 2005 à 09:32
Salut Maily,
Je me positionne tout simplement dans le répertoire ou se trouvent mes fichiers ".java" et je fais "javac MonFichier .java".
J'ai indiqué en variable d'environnement le répertoire courant donc ça devrait fonctionner mais la compilation ne marche que si je tape "javac *.java" sinon j'ai des tonnes erreurs à chaque fichier.
0
Bonjour Niklaus,

Ce que je ne comprends pas, c'est pourquoi tu utilises l'environnement .NET pour taper ton code, alors qu'il existe des environnement multilangage en freeware.

Je pense que ton problème peut provenir de là. Je m'explique : ton code source n'est pas enregistré correctement par l'environnement .NET que tu as choisi pour taper ton code, donc à la compilation java ne sait pas quoi faire, sauf t'envoyer des messages d'erreurs.

Utilise simplement le bloc notes pour taper ton code, et essaie de recompiler pour voir si cela résoud ton problème.


Amicalement,


Vincent B
0
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
1 avril 2005 à 10:41
Tu as créé une variable d'environnement JAVA_HOME?
0
niklaus Messages postés 5 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 4 avril 2005
2 avril 2005 à 00:12
Salut Vincent,
Si j'utilise ce logiciel c'est parce que dans mon école (je suis en école d'ingé) les TP de génie logiciel ont eu lieu en .net. Je sais que c'est un peu gros pour juste taper du code mais je trouve ça plus "interactif" qu'un bloc note (pour le débutant que je suis).
Sinon j'ai quand même essayé de retaper le code sur le bloc note mais le résultat est le même: il veut bien compiler quand je tape "javac *.java" mais dès que je détaille le nom des fichiers j'ai tout un tas d'erreurs. Je viens d'ailleurs de remarquer que ces erreurs concernent à chaque fois des lignes de code ou je fais appelle dans une classe à une méthode d'une autre classe.

Maily re-salut. Non, je n'ai pas de variable java_home. A quoi ça sert qu'est-ce qu'on y met comme valeur?

Merci à tous les deux.
0
Bonjour Niklaus,

Ok. Donc tes messages doivent contenir NoClassFound ou quelquechose dans ce genre. Ceci est du au fait qu'il ne trouve pas la méthode de la classe que tu utilises à l'intérieur d'une autre classe, il faut lui donner le chemin complet ou taper la ligne suivante :

import chemindetaclasseexterne.nomdetaclasseexterne


Je ne suis pas sur mon poste, je pourrai t'envoyer un exemple de fichier java lundi si ça t'intéresse.


Quant à JAVA_HOME, c'est nécessaire pour définir le classpath du compilateur java.

Tu vas dans autoexec.bat et tu rajoute la ligne suivante :

set JAVA_HOME=emplacement de ton repertoire contenant javac


Cette ligne te permet de lancer le compilateur en ligne de commande depuis n'importe quel endroit.

Sinon tu peux télécharger JCreator sur http://www.telecharger.com pour avoir un environnement de développement Java avec colorisation syntaxique. Pour éviter le bloc notes.


Voilà pour aujourd'hui. Je ne suis pas en école d'ingénieur mais tes cours m'intéressent, j'aimerai savoir à quoi ca correspond. N'hésites pas à me redemander si tu cales. C'est simple de faire la Java.


Amicalement,


Vincent
0
niklaus Messages postés 5 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 4 avril 2005 > Vincent B
2 avril 2005 à 19:17
salut Vincent,
Merci pour tes conseils. j'ai ajouté JAVA_HOME à mes variables d'environnement (avec la valeur "c:\j2sdk1.4.2_07\bin"). ça n'a rien changé. mais tu peux m'expliquer la différence avec la variable CLASSPATH?
Sinon les messages d'erreurs sont de ce genre :
MonJeu.java:39: cannot resolve symbol
symbol : variable Console
location: class MonJeu
x = Console.readInt("votre proposition");
^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour Niklaus,

En effet, la ligne suivante :

x = Console.readInt("votre proposition");


doit être remplacée car tu fais appel directement à la Classe Console et en java ce n'est pas possible. Il est nécessaire d'instancier ta classe :

Console c=new Console(); // si ton constructeur est sans variable

Ta ligne devient :
x=c.readInt("votre proposition");


ATTENTION !!!! Vérifie bien que ta méthode va renvoyer un integer, je suppose que tu as déclaré ta variable x. Si la méthode readInt doit lire au clavier une valeur saisie, il est possible que tu sois obligé de convertir en entier la valeur saisie. En effet, par défaut c'est un string que renvoie le programme.

Voilà, j'espère que cela t'a aidé.


Amicalement,


Vincent B
0
niklaus Messages postés 5 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 4 avril 2005
4 avril 2005 à 09:15
salut vincent,
ma classe console est déclarée en static donc normalement je peux y faire appel sans l'instancier. mais là ce n'était qu'un exemple parmis tant d'autres (où j'ai instancié des classes).
J'ai téléchargé JCreator sur tes conseils. C'est vrai qu'il est plus léger que visual studio. Mais ça n'a quand meme pas réglé mon problème. En compilant et en exécutant depuis le logiciel tt se passe bien et quand je le fais directement sous dos j'ai plein de messages d'erreurs.
0
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
4 avril 2005 à 11:17
bonjour!

Quand tu compiles, il faut que tu compiles tout tes fichiers ensemble. Je m'explique:
Si tu utilises une fonction de la classe Console dans la classe Truc, tu fais comme ça:
javac Console.java Truc.java

Comme ça, Truc saura ou trouver la fonction vu que Console est lié avec et n'appartient au java classique.
0