Compilation java

verbeyst Messages postés 77 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 15 février 2011 - 27 févr. 2003 à 11:24
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 - 28 févr. 2003 à 09:30
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

cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
27 févr. 2003 à 12:38
salut,
essayes de preciser le classpath :
javac -classpath %CLASSPATH%;. taclasse.java
Duss
0
verbeyst Messages postés 77 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 15 février 2011
27 févr. 2003 à 13:18
-------------------------------
Réponse au message :
-------------------------------

J'obtiens un message d'erreur :" nom de commande ou de fichier incorrect "
0
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
27 févr. 2003 à 15:02
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
0
verbeyst Messages postés 77 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 15 février 2011
27 févr. 2003 à 15:25
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.
0

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

Posez votre question
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
27 févr. 2003 à 15:37
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
0
verbeyst Messages postés 77 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 15 février 2011
27 févr. 2003 à 16:48
-------------------

> 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");}
}
0
splitsch Messages postés 5 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 20 avril 2003
28 févr. 2003 à 05:26
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
0
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
28 févr. 2003 à 09:16
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
0
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
28 févr. 2003 à 09:30
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
0