Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/10/2006, à 19:32

milambert

Java: Exception in thread "main" ...

Salut tout le monde.

Voila le probleme, je n'arrive pas a faire tourner mes programmes codees en java.

A chaque fois, j'ai cette erreure la:

Exception in thread "main" java.lang.NoClassDefFoundError: Principal (wrong name: ex1/Principal)
        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$100(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:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

si dans mon code j'utilise "package ex1" dans ce cas si.

ps: le code a ete ecris avec eclipse a la fac, et fonctionnait correctement.

Dernière modification par milambert (Le 12/10/2006, à 19:35)


mouarf, ...

Hors ligne

#2 Le 12/10/2006, à 19:35

Luckynow

Re : Java: Exception in thread "main" ...

tu les exécute comment ?
si tu fait java le nom_de_ma_class c'est normal,
il faut que tu règle le classpath
généralement tu te met dans le dossier racine du projet et tu fait

java -classpath . le_nom_de_ta_class

Je te conseil dans un premier temps de n'utiliser que les commandes java et tu passera après par un IDE qui fera toute ces choses à ta place, J'ai pour ma part commencer avec un IDE et je suis passer à côté de ces choses la et ça m'a pris du tmeps pour comprendre comment se servir de la ligne de commande

Dernière modification par Luckynow (Le 12/10/2006, à 19:37)

Hors ligne

#3 Le 12/10/2006, à 19:50

milambert

Re : Java: Exception in thread "main" ...

Luckynow a écrit :

il faut que tu règle le classpath
généralement tu te met dans le dossier racine du projet et tu fait

java -classpath . le_nom_de_ta_class

question bête, on met quoi dans ce fichier (syntaxe, ...)?

Et a propos de l'IDE: je n'en veux pas chez moi. J'ai vim et c'a me suffit. Et puis le test d'eclipse a la fac, m'a refroidit: c'est lourd et trop assister => je n'aime pas.

merci pour ta reponse.

Dernière modification par milambert (Le 13/10/2006, à 17:16)


mouarf, ...

Hors ligne

#4 Le 12/10/2006, à 20:35

Luckynow

Re : Java: Exception in thread "main" ...

le classpath c'est une varibale d'environnement
tu le fait comme je l'ai mis, le . signifie dossier courant.
Le classpath doit correspondre au package principale, et si tu ne définit pas de package c'est le dossier racine.
Donc
java -classpath . Ma_CLass (sans le .class à la fin)
typiquement

java -classpath . hello

service

Ceci dit, ne blâme pas eclipse dès que tu travail sur des porjets de grandes taille, ou en colaboration, c'est le genre d'outils qui te font gagner en productivité (complétion de code).
La navigation ,la  compilation automatique instantanée pour reporter les erreurs directement.
De plus si tu veux pas avoir à retenir l'API Java en entier la compétion te permet de coder de manière très intuitive.

Dernière modification par Luckynow (Le 12/10/2006, à 20:41)

Hors ligne

#5 Le 12/10/2006, à 21:19

mrf

Re : Java: Exception in thread "main" ...

pour les packages faut pas oublier d'avoir les répertoires qui vont bien:

./ex1
./ex1/Truc.class

se lance:
java -cp . ex1.Truc

(non il n'y a pas d'autocompletion ... mais c'est vous qui avez choisi ce langage)

Hors ligne

#6 Le 04/08/2007, à 17:29

mostafa

Re : Java: Exception in thread "main" ...

Bonjour j'ai installé java 1.6 et tomcat 6 tous les deux dans opt. Lorsque je demarre tomcat j'ai :
     /opt/tomcat/bin/catalina.sh: 338: /opt/jdk1.6.0_2/bin/java: not found
Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:       /opt/jdk1.6.0_2
et tandis que le test de sun marche parfaitement, lorsque je mets: java version; j'ai le message suivant:
   Exception in thread "main" java.lang.NoClassDefFoundError: version
   at gnu.java.lang.MainThread.run(libgcj.so.70)
Caused by: java.lang.ClassNotFoundException: version not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
   at java.net.URLClassLoader.findClass(libgcj.so.70)
   at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.70)
   at java.lang.ClassLoader.loadClass(libgcj.so.70)
   at java.lang.ClassLoader.loadClass(libgcj.so.70)
   at gnu.java.lang.MainThread.run(libgcj.so.70)
merci de m'aider

Hors ligne