[JAVA] Besoin d'aide commande java

Résolu/Fermé
damien - 11 déc. 2008 à 14:42
 Témoi de Java - 1 avril 2009 à 21:10
Bonjour,
J'ai installée la JDK 1.6 de sun.

Je compileun programme sans probleme via javac.
Mais lors de l'éxécution avec la comande "java" sa plante erreur :

Exception in thread "main" java.lang.NoClassDefFoundError:
Caused by: java.lang.ClassNotFoundException: Test
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Nat
at java.net.URLClassLoader.findClass(Unknown Sourc
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unkn
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown
Could not find the main class: Test. Program will exit.

Mon main est pourtant bien présent. J'arriva pas a trouver.

Je donne ma version de JDK :

C:\UPJV\SE>java -version
java version "1.6.0_11"
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)


Merci de votre aide c'est trés important.
A voir également:

7 réponses

freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
11 déc. 2008 à 15:00
Alors faut regarder du coté de ta variable d'environnement $CLASSPATH: il faut qu'elle contienne un ".", pour indiquer le repertoire courant. Pour info: touche windows + pause sous winwin puis onglet avancé et bouton variable environnement
Et un conseil: ne nomme pas tes classes "test", juste par principe (test est une commande linux, pas encore sous windows mais pour la portabilité sa gache tout).
Préfère plutot le mot essai ...
0
Merci pour ton aide si rapide.

C:\UPJV\SE>echo %classpath%
.D:\Program Files\Java\jdk1.6.0_11\lib

voial la valeur de mon classpath. Je sais pas quoi te dire de plus.
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
11 déc. 2008 à 15:06
Et bah relis mon post, tu verra: il te manque la valeur "." (juste un point, sans les guillemets, mais la je pense que tu doit savoir.
Donc ajoute là, et ensuite essaie de réexécuter.
Sinon utilise la commande java de cette manière.
java -classpath . tonprog
Enfin si je me rappelle bien
0
damien > freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016
11 déc. 2008 à 15:19
Encore merci mais sa ne marche pas.

J'avais bien le "." mais pas le ";". Je l'ai rajoutée et j'ai essayer ce que tu m'a dit sans résultat.
Toujours même erreur avec

C:\UPJV\SE>java S2
Exception in thread "main" java.lang.NoClassDefFoundErr
Caused by: java.lang.ClassNotFoundException: S2
at java.net.URLClassLoader$1.run(Unknown Source
at java.security.AccessController.doPrivileged(
at java.net.URLClassLoader.findClass(Unknown So
at java.lang.ClassLoader.loadClass(Unknown Sour
at sun.misc.Launcher$AppClassLoader.loadClass(U
at java.lang.ClassLoader.loadClass(Unknown Sour
at java.lang.ClassLoader.loadClassInternal(Unkn
Could not find the main class: S2. Program will exit.

Je désespere sa fait 2 jours que je suis deçu sans résultat.
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161 > damien
11 déc. 2008 à 15:27
Fait voir le code de ta classe S2.java stp?
et est tu sur de l'exécuter depuis le bon endroit?
Par là, je veut dire: est ce que la classe S2 se trouve bien dans le répertoire C:\UPJV\SE\ ?
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
11 déc. 2008 à 15:27
ta classe elle est dans un package ?
0
salut,
soit tu ajoute ".;"dans Poste de travail->propriété->avancé->classpath avant "c:/"
soit tu lance l'éxécution avec la commande
java -classpath . Test
0

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

Posez votre question
TémoinDeJava
1 avril 2009 à 18:17
Bonjour j ai exactement le même problème que Damien, j'ai défini le path et le class path. la commande, javac Fichier.java,marche et elle m a crée le fichier.class, mais ensuite avec la commande java Fichier, j'ai le même résultat qu'affiché par Damien. Je me demande si le fait d'avoir d'abord créer le fichier.class, le fichier.java,... par un IDE (netBeans) peut perturber par la suite l'éxécution de l'application sous la cmd.exe?
je cherche, encore et encore,...tiens d'ailleurs je vais repartir à zéro avec un tout nouveau fichier contenant le même code sans faire intervenir d'ide!
vous tiens de suite au courant!
0
TémoinDeJava
1 avril 2009 à 18:35
BIGRE! alors je vais devoir m'expliquer là...
tout au début, quand je nageais avec les soucis, j'avais créé un Main.java, qui lorsque que je compilais avec javac me donner sagement un Main.class.
Or je crois qu'il s'agit d'une couille (je l'ai bien cherché il faut dire...) car ensuite j'avais cette fameuse réplique du système ...class not found patati...quandje voulais lancer l'appli java.
MAIS quand j'ai rrecréé un autre fichier avec un autre nom, à savoir je l'ai enregistré comme ceci: Simple.class il n'y a pas eu de problème et un fichier nommé Main.class est apparu après la compilation! alors que je m'attends à avoir un Simple.class d'où l'erreur détecté car c'était justement ça que je voulais appeler.
DONC je pense que Damien devrais justement regarder le nom de son fichier.class, car il change et devient un nomDeLaClasse.class. et oui c'est bien le nom de la class que tu as codé qui apparaît lors de la compile.
avec l'instruction dir, tu pourrais justement regarder ce que tu as comme fichier.class.

J'espère avoir pu t'aider!

une erreur de débutant que seul un vrai débutant aurait pu trouver ;-)
0
Témoi de Java
1 avril 2009 à 21:10
oui encore une précision. en fait j'ai remarqué qu'en supprimant le package XXXXX dans le code java, je supprimais aussi cette erreur. en faite toutes mes grosses théories d'avant c'était plutôt du vent. je crois que vraiment le problème vient du package. si quelqu'un de plus expérimenté pourrait ajouter des commentaires, analyses à ça, je lui en serai reconnaissant!
0