Pb avec mon prg java

domxav -  
poukkid Messages postés 108 Statut Membre -
Bonjour,
je sui novice dans le programmation
je vient d'ecrire un prg,qui suit:
public class sdz1
{
public static void main (String[] args)
{
System.out.print("Hello world!");

}
}

en le compilant avec javac sdz1.java dans le cmd (dos mod)
il affiche un error message suivante:

sdz1.java:1:class,interface,or enum expected

pourtant je fais marcher ce prg avec Eclipse, il n'y a aucun error,où est ce que je puisse tromper
veuillez m'aiderz s'il vous plaît
A voir également:

11 réponses

poukkid Messages postés 108 Statut Membre 11
 
Salut,

Essaye
System.Out.println("Hello world!");

Pour aller plus vite sur eclipse, tu tapes sysout et Ctrl+espace...
0
domxav
 
j'ai essayé comme tu m'a dit

et essayé compilé:
c:\program files\java\sdz1\javac sdzi.java

il m'affiche simplement
c:\program files\java\sdz1
pas d'autres

dans l'eclipse marche bien,seulement dans le dos mode marche pas
0
poukkid Messages postés 108 Statut Membre 11
 
Ca veut dire que la compilation s'est bien passée.

<javac sdzi.java> permet de compiler ton code source et créer autant de .class qu'il y a de classes dans ton code source.

Ensuite tu n'as plus qu'a exécuter la classe principale, soit ici sdz1 :

la commande (avec le chemin) est la suivante (sans extension pour sdzi):
c:\program files\java\sdz1\java sdzi
0
domxav
 
je fais comme tu m'ai dit
c:\program files\java\sdz1\java sdz1

il s'affiche suivant message:
Exception in thread "main" java. lang.NoClassDefFoundError:sdz1<wrong name sdz1/sdz1>
..............................................................................................................................
..............................................................................................................................
could not find the main class:adz1. Program will exit
0
poukkid Messages postés 108 Statut Membre 11
 
Ca veut dire qu'il ne trouve pas tes .class qui ont été compilés.
tu peux essayer de te placer dans le répertoire où ont été créés les .class.

Si ca ne marche toujours pas (un peu plus compliqué):

après avoir compilé avec <javac sdz1.java>, tu peux préciser lors de l'exécution avec <java> le chemin ou se trouve ton fichier.class :
java -cp chemin sdz1

(chemin est le chemin où se trouve le .class en question)
Pour cela, il faut savoir où se trouve le .class que java a créé lors de la compilation (fais une recherche)
ou alors précises lors de la compilation avec javac l'endroit où tu souhaites créer les fichiers .class:

compilation et création des fichiers .class dans c:\program files\java\sdz1\class :
c:\program files\java\sdz1\javac -d class sdz1.java

exécution en précisant l'emplacement des .class :
c:\program files\java\sdz1\java -cp class sdz1
0
domxav
 
que signifie
-d et -cp

compilation et création des fichiers .class dans
c:\program files\java\sdz1\class :
c:\program files\java\sdz1\javac -d class sdz1.java

exécution en précisant l'emplacement des .class :
c:\program files\java\sdz1\java -cp class sdz1
0
poukkid Messages postés 108 Statut Membre 11
 
Ton programme marche-t-il ?

cp signifie classpath, c'est à dire le chemin (path) ou tu as stocké tes fichiers .class
si tu as des soucis avec cette option, tu peux également ecrire classpath en entier :
c:\program files\java\sdz1\java -classpath class sdz

d signifie directory, et permet de spécifier l'endroit où le compilateur va créer les .class
0
domxav
 
j'ai écris comme ça
c:\program files\java\sdz1>c:\program files\java\sdz1\javac sdz1.java

j'ai reçu le message suivante:

'c:\program' nest pas reconnu en tant que commande interne ou externe un prg executable ou un fichier decommandes
0

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

Posez votre question
poukkid Messages postés 108 Statut Membre 11
 
Non, je réécrivais le chemin de ton dossier sdz1 pour que tu te repères, tu compile depuis
c:\program files\java\sdz1>
donc ne bouge pas de là, et lances juste ces deux lignes :

javac -d class sdz1.java

java -cp class sdz1
0
domxav
 
c:\program files\java\sdz1>javac -d class sdz1.java

j'ai ces messages:
javac:directory not found:class
usage:javac<option><source files>
use -help for a list of possible options
0
poukkid Messages postés 108 Statut Membre 11
 
javac:directory not found:class

signifie que le répertoire class n'existe pas,
désolé c'est de ma faute, j'ai oublié de préciser qu'il fallait créer le répertoire class dans C:\program files\java\sdz1>

crée le (avec la commande mkdir class ou bien à la main dans windows) et relance la compilation puis l'exécution
0
domxav
 
il s'affiche suivant message:
Exception in thread "main" java. lang.NoClassDefFoundError:sdz1/java caused by: java.lang.ClassNotFoundExecption:sdz1.java
..............................................................................................................................
..............................................................................................................................
could not find the main class:adz1. Program will exit
0
domxav
 
c:\program files\java\sdz1>javac -d class sdz1.java
il a bien compilé

et j'ai executé avec:
java -cp class sdz1.java
il s'affiche suivant message:
Exception in thread "main" java. lang.NoClassDefFoundError:sdz1<wrong name sdz1/sdz1>
..............................................................................................................................
..............................................................................................................................
could not find the main class:adz1. Program will exit
0
poukkid Messages postés 108 Statut Membre 11
 
Exception in thread "main" java. lang.NoClassDefFoundError:sdz1<wrong name sdz1/sdz1>
..............................................................................................................................
..............................................................................................................................
could not find the main class:adz1. Program will exit

Comme tu vois il cherche adz1 et non pas sdz1, verifie bien tous tes noms, noms de la classe dans le .java, nom du fichier, et les noms utilisés lors de la compilation, ton erreur vient d'une faute de frappe.
0
domxav
 
non,c'est moi qui a trompé c'est une erreur de frappe il cherche class sdz1,
dans mon repertoire j'ai bien sdz1.class

java -cp class sdz1.java
il s'affiche suivant message:
Exception in thread "main" java. lang.NoClassDefFoundError:sdz1<wrong name sdz1/sdz1>
..............................................................................................................................
..............................................................................................................................
could not find the main class:sdz1. Program will exit
0
poukkid Messages postés 108 Statut Membre 11
 
Regarde bien les noms de fichiers, classe, compilation, etc parce que tu as un problème de frappe c'est sûr.

Si ca ne marche toujours pas, donne moi le chemin de ton compilateur javac.exe,

normalement c'est quelquechose du genre
c:\program files\Java\jdk1.6.0_13\bin\javac.exe

recopie le chemin et avec tu pourras compiler de n'importe où en précisant l'adresse du compilateur.
0
domxav
 
j'ai bien javac.exe dans
C:\Program Files\Java\jdk1.6.0_12\bin\javac.exe
0
poukkid Messages postés 108 Statut Membre 11
 
Place toi dans le répertoire où il y a ton fichier sdz1.java

a priori si tu n'as rien changé tu dois avoir ceci devant toi comme avant :

C:\program files\java\sdz1>

tapes juste ces deux lignes, ca devrait suffire a compiler et à lancer, j'ai testé chez moi et ça marche sans problème :

"c:\Program Files\Java\jdk1.6.0_12\bin\javac.exe" sdz1.java

"c:\Program Files\Java\jdk1.6.0_12\bin\java.exe" sdz1

(avec les guillemets surtout)

je reviendrais dans quelques heures, dis moi si ca a marché
0
domxav
 
C:\program files\java\sdz1>"c:\Program Files\Java\jdk1.6.0_12\bin\javac.exe" sdz1.java

il y un error message:

' "c:\Program Files\Java\jdk1.6.0_12\bin\javac.exe" sdz1.java'
n'est pas reconnu en tant que commande interne ou externe,un program executable ou un fichier de commandes
0
domxav
 
poukkid ,t'est revenu
0
poukkid Messages postés 108 Statut Membre 11
 
De retour, désolé j'ai pas pu repasser depuis quelques jours.

A tester :
Recommence la ligne de commande "c:\Program Files\Java\jdk1.6.0_12\bin\javac.exe" dans dos en utilisant l'auto-complétion.

en gros, a chaque fois que tu commence a taper une partie du chemin (juste après un \), tu appuie sur la touche [tabulation] jusqu'a trouver la partie du chemin que tu voulais, et tu recommences jusqu'à arriver à javac.exe

en gros tu devrais taper un truc du genre :

c:\pro
[tab]
\ja
[tab]
\jd
[tab]
\b
[tab]
\ja
[tab]

et tu recommence ce que je t'ai donné comme indication précédemment.

Si ca ne marche toujours pas et que tes chemins sont justes de façon certaine (en ayant utilisé l'auto-complétion), alors ton problème doit certainement venir de ton classpath qu'il faut configurer, puisqu'il semblerait que ton systeme ne trouve pas tes classes.

Dans ce cas la je ne pourrais pas t'aider plus parce que je n'y connais pas grand chose, par contre tu peux aller voir ce lien qui devrait t'aider a terminer de résoudre tes problèmes:

http://www.commentcamarche.net/forum/affich 6156793 java lang noclassdeffounderror
0