Compilation java

Signaler
Messages postés
77
Date d'inscription
mardi 10 mars 2009
Statut
Membre
Dernière intervention
15 février 2011
-
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
-
Lorsque j'essaie de compiler et de lancer mes programmes java via la ligne de commande DOS"java nomclasse.java" et "java nomclasse", je reçois un message d'erreur:"exception in thread "main" java.lang.NoClassDefFoundError: nomclasse"
Le(path) chemin d'accès aux éxecutables java est bien spécifié dans autoexec "c:\j2sdk 1.4.0\bin".
Lorsque je lance les mêmes programmes via mon éditeur de texte textpad(outil-compiler-lancer), tout tourne bien.
J'y ai passé trois jours et je ne comprends pas ce que ça veut dire. HELP!!

9 réponses

Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
salut,
essayes de preciser le classpath :
javac -classpath %CLASSPATH%;. taclasse.java
Duss
Messages postés
77
Date d'inscription
mardi 10 mars 2009
Statut
Membre
Dernière intervention
15 février 2011

-------------------------------
Réponse au message :
-------------------------------

J'obtiens un message d'erreur :" nom de commande ou de fichier incorrect "
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
je viens de relire ton premier message,
pour compiler c'est javac avec un c comme compiler pas java
java c'est pour lancer tes fichiers compilés
Duss
Messages postés
77
Date d'inscription
mardi 10 mars 2009
Statut
Membre
Dernière intervention
15 février 2011

Mon roblème ne situe pas à ce niveau-là. J'ai sans doute oublié le "c" en t'écrivant, mais crois-moi, je l'ai bien mis dans ma ligne de commande dos.
Mon problème est ailleurs.
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
bon reprenons au debut :
si ton fichier java qui contient le main est Toto.java

compilation : javac Toto.java
run : java Toto

c'est tout
montre moi tes lignes de commande

Duss
Messages postés
77
Date d'inscription
mardi 10 mars 2009
Statut
Membre
Dernière intervention
15 février 2011

-------------------

> javac Bonjour.java
>"nom de fichier incorrect", telle est la réponse qui m'est envoyée.
Voici le code

class Bonjour{

public static void main(String[] args){
System.out.println("hello tout le monde");}
}
Messages postés
5
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
20 avril 2003

Salut !
J'avais deja ecrit sur le forum a propos de monfichier.jar qui ne s'autoexecute pas en double-cliquant dessus...Mais voici un exemple concret :
nom du fichier : bonjour.java, qui contient
[code]
class Bonjour{
>
> public static void main(String[] args){
> System.out.println("hello tout le monde");}
> }
[\code]
pour en creer un fichier.jar, je fais la commande
[code]
jar cfm bonjour.jar Manifest.mf bonjour.class
[\code]

Et voici le contenu de mon fichier Manifest
[code]
Manifest-Version: 1.0
Main-Class: EssasiavecManifest
Created-By: 1.3.1_06 (Sun Microsystems Inc.)
[\code]

Mais quand je double-claique sur bonjour.jar, il me dit que il trouve pas la methode main()...

Malgre que tout ces fichiers soit dans le meme repertoire, et que quand j'ouvre bonjour.jar avec Winzip, je trouve le manifest, en premiere position, et le contenu est le meme que au depart...

Est-ce que tu as des idee de ou la probleme pourrait venir ?
Merci d'avance !!
:-)
Splitch
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
salut,

bon pour le jar,
si ta calsse s'appelle Bonjour, c'est Bonjour qu'il faut mettre dans le manifest et pas Essaiavecmanifest!! :
Manifest-Version: 1.0
Main-Class: Bonjour


Duss
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
salut,
il y a deux possibilités :
- ta commande javac ne fait pas partie du path windows
- ton fichier ne s'appelle pas bonjour

Je pencherais plutot pour la premiere !
Les commandes de compilations etant des commandes dos, elles doivent etre enregistrées dnas la variable d'environnement path de windows pour pouvoir s'en servir dans n'importe quelle repertoire.

Si tu as win2000 ou xp :
tu vas dans les propriétés du poste de travail, dans l'onglet avancées, tu choisis variables d'environnement.
Dans la partie basse (variables système), tu devrais une entrée "path".
Dans le cas ou elle existe, tu vas a la fin de sa valeur, tu rajoute un ; et tu mets le chemin de ton repertoire bin du sdk.
par exemple : c:\java\j2sdk1.4.1\bin\
Dans le cas ou elle n'existe pas, tu créé une entrée path et tu mets la meme chose dedans.

Si tu as win98 :
dans le fichier c:/autoexec.bat, si tu as une ligne :
SET PATH=
tu rajoutes un ; a la fin et le chemin du repertoire bin du sdk.
Sinon, tu rajoutes la ligne en faisant bien attention que le = soit collé au Path.
puis tu es bon pour un redémarrage (avec 98 opas avec 2000/xp).

D'autre part, quand on execute un prog java avec java, il faut qu'il sache ou trouver les classes.
Pour cela une autre variable d'environnement existe, c'est la variable CLASSPATH.
Tu peux la redéfinir à la volée :
java -cp . Bonjour

l'option -cp (ou -classpath) te permet de préciser le chemin des classes. Le . veut dire que c'est le répertoire courant.

Duss