Se connecter / S'enregistrer
Votre question

Narrive pas à excuter un fichier compilé avec javac

Tags :
  • Erreur de syntaxe
  • Programmation
Dernière réponse : dans Programmation
2 Août 2005 01:52:06

bonlour tout le monde
Je suisnouveau sur ce forum et je voudrai m'initier à la programmation an langage JAVA.en me permetant de vous consulter sur le forum.
Jai acheté un livre le guide d'apprentissage qui s'appelle Java Tête la premiere.
Puis j'ai téléchargé SDK Java 2 standard Edition ver5
et je l'ai installé sur mon ordinateur qui tourne avec l'exploitation W98
tout s'est bien passé
J'utilise l'éditeur sous DOS (edit)pour taper mon code source,qui est simplement le même qui est à la page 3 du premier chapitre du livre.(fete.java)
J'ai compilé le fichier fete.java en exécutant
" javac fete.java"
Li a génér un fichier "fete.class"
comment pourraige visualiser le code compilé"fete.class"?
J'ai tenté d'exécuter "fete.class" en lançant
" java fete.class"
Il s'est avéré un méssag me disant
"Exception in thread "main" java.long NoclassDef
Found Error: fete/class
Je ne sais pas ce que ce la veux dire,et pourquoi le programme ne séxécute pas?
y a til une solution pour que ça fonctionne?
Merci
cordialement.

Autres pages sur : narrive excuter fichier compile javac

2 Août 2005 09:52:05

l'erreur qui t'es donnée est explicite, même si je reconnais que si tu débutes ça soit du chinois.

ton fichier class ne s'exécute pas car tu n'as pas créé de classe fete. en java, un fichier doit toujours porter le nom de la classe qu'il décrit. une seule classe par fichier donc.

ton fichier fete.java doit donc impérativemet être de la forme (à l'erreur de syntaxe près)

import blablabla;

class fete{
les méthodes, les attributs et surtout...

public static int main(String argv[]){
blablabla}
};
3 Août 2005 03:27:54

Bonjour j'ai bien reçu votre modification a porter au programme Fete.java.
Mais il ne se compile plus
Permettez -mois de vous le copier le fichier source,pour que vous le corrigiez

import java.awt.*;
import java.awt.event.*;
class Fete{
public static int main(String argv[]) {
Frame f = new Frame();
Label l = new Label("Fete chez moi");
button b = new Button("OK");
Button c = new Button("Désolé");
panel p = new Panel();
P.add(l);
}
}



Savez vous ou je pourrai télécharger le compilateur (Forte For java)

merci bien
Contenus similaires
3 Août 2005 10:43:26

alors, tout d'abord la classe doit s'appeler fete et non Fete, sinon il y a des erreurs de résolution de symbole.

dans la frame que tu créés, tu ne mets rien et tu ne l'affiches pas non plus ....

il faut donc faire un f.add(p);
et un f.pack(); pour mettre la frame en ordre et un
f.setVisible(true); pour l'afficher.

il manque aussi le return 0; en fin de main.

une autre solution assez élégante est de créer dans le main un objet d'une classe toto extends Frame dans laquelle tu définis le constructeur toto()
et c'est dans ce constructeur que tu mettrais toutes les créations et associations des Label, Button, Panel et compagnie. Ceci aurait aussi l'avantage de passer certains soucis de staticité du main.

et pour ce qui est du compilateur Forte, je ne l'utilise pas, javac convient tout à fait à mes besoins. Google ne sait pas où il se trouve ?
4 Août 2005 02:47:23

Bonjour Khayyam
Je n'ai toujour pas exécuté le plus simple des programmes en java; Il y a toujours un probléme lors de la compilation (javac) ou lors de l'exécution (java)

J'utilis des petits programmes source cités en exemple dans le livre avec le résultat.
Mais rien à faire java trouve toujours un probléme à l'exécution ou une erreur
Je comence à doutr de ma manier de faire
Ce n'est quand même pas normal qu'un fichier source donnée comme exemple ne fonctionne pas.

Pouvez-vous me faire parvenir un petit fichier source java tout simple et qui fonctionne pour que je le compile et l'exécut (bourgeois@powerantilles.com)
le fichier fete.java que je vous ai montré je ne sais pas ou rajouter tout ce que vous me citez.
Merci
cordialement.
5 Août 2005 01:08:58

Bonjour Khayyam
J'ai bien reçu votr courier avec les deux fichiers
merci

j'ai compilé freme.java la compilation s'est bien fait sans probléme et a généré un fichier (freme .class)
mais quand je veux l'xécuter (java freme.class) un message me dit:
Exception in thread "main" java. long NoSuchMet hod
error: main

dur dur la programmation en java!

Il doit y avoir un truc
Je travaille dans la fenêtre MS-DOS de windows
c:\program files\java\jdk1.5.0_04\bin
est ce bien là qu'il faut compiler et exécuter

cordialement Mr
5 Août 2005 10:17:55

comme dit dans mon mail (enfin, je crois), l'exécution se fait par java fete et non java freme.

le point d'entrée du programme (le main) est dans la classe fete. la classe freme n'en contient pas (d'où le Exception in thread "main" java. long NoSuchMet hod )

et aussi pour info, il faut compiler les 2 fichiers java
javac fete.java freme.java
6 Août 2005 02:33:55

Bonjour khayyam
je ne savais pas qu'il falait compiler les deux fichiers fete et freme pour que l'aplication fonctionne.

Tout s'est bien pasé cette fois ci
java a exécuté fete sans probléme

pourquoi avez vous utilisé deux fichiers pour l'exécution d'un programme.

ne pourrait on pas rassembler les deux ficiers ensemble pour en faire 1?

je vout écrit un autre fichier dites moi s'il est bon pour compiler et exécuter

Fichier (PremiereAppli.java)
public class PremiereAppli {
public static void main (String[] args) {
System.out.println("je suis le maitre");
System.out.println("du monde");
}
}


Le livre que j'ai ne m'aide pas beaucoup, parce que tous les exemples ont un probléme.Ce n'est pas normal.

Comment on écrit un (reton 0;) en fin de main?

Je voudrai faire le premié fichier que je vous ai copié fontionner.Il vient du livre.

et Merci encore de m'avoir guié dans la compilation et l'exécution avec java.

salutations
6 Août 2005 10:44:28

Citation :
pourquoi avez vous utilisé deux fichiers pour l'exécution d'un programme.

parce que j'ai utilisé 2 classes, et en java, c'est une seule classe par fichier. On pourrait rassembler les 2 fichiers en un en concevant l'appli différemment pour qu'elle ne nécessite plus qu'une classe.

le code
  1. Fichier (PremiereAppli.java)
  2. public class PremiereAppli {
  3. public static void main (String[] args) {
  4. System.out.println("je suis le maitre");
  5. System.out.println("du monde");
  6. }
  7. }
me semble correct, je l'ai compilé / exécuteé sans soucis. C'est un "hello world".

Citation :
Comment on écrit un (reton 0;) en fin de main?

on rajoute simplement "return 0;" à l'endroit où l'on souhaite que le main se termine (bien sûr, le main doit être déclaré comme renvoyant un int - si ton main renvoie un void, il n'y a pas de return 0 à faire). De la même manière qu'on donne un code de retour pour n'importe quelle autre méthode/fonction.
8 Août 2005 03:04:24

Bonjour Khayyam
OK pour l'explication concernant l'utilisation de deux fichier pour un programme, et quand il faux utiliser "return 0;"


Pour le code
je vais le compiler à mon tour et voir s'il s'exécute.Je vous fais vérifier pour moi par ce qu'il me sanblait l'avoir testé sans succés.
Peut être que je m'y prenais mal à ce moment là. Je vous tiendrai au courant du résultat.


question:
Le programme que vous m'avez passé ne pourait il pas fonctionner hors de l'environnement java, sur une autre machine par exemple?

Amicalement
8 Août 2005 10:17:34

Citation :
Le programme que vous m'avez passé ne pourait il pas fonctionner hors de l'environnement java, sur une autre machine par exemple?


alors, un programme java ne peut pas tourner hors de l'environnement java.
Mais pour ce qui est d'une autre machine, ce soucis n'a pas lieu d'être puisqu'un programme java est exécuté par la machine virtuelle java et non pas par le système d'exploitation. N'importe quel ordinateur ayant la machine virtuelle java (que ça soit un windows, linux, sun, mac ou autre) sera capable d'exécuter le programme java et ce, sans aucune recompilation. Suffit d'avoir la machine virtuelle java.

C'est le principe de la légendaire portabilité de java.
10 Août 2005 03:13:38

Bonjour khayyam
Est-ce que l'exploitation w98/xp a prévu un environnement jvm pour exécuté ces programmes java?
Je nais pas encore compilé et exécuté comme dit le fichier (PremierAppli.jav) je vous tien au courant
merci
10 Août 2005 10:01:37

Citation :
Est-ce que l'exploitation w98/xp a prévu un environnement jvm pour exécuté ces programmes java?


Cet environnement jvm n'est pas le fruit du travail de microsoft mais plutôt de sun microsystems. sur la page de téléchargement du site de sun tu as le choix de ta plateforme : quelques unes dont windows.

le site te propose soit de télécharger la machine virtuelle java, soit l'environnement de développement, contenant les bibliothèques et le compilateur
14 Août 2005 03:08:26

Bonjour Khayyam
Le programme PremiereAppli.java ne veut pas se compiler .Il présente 27 erreurs en tout.J'ai bien vérifié que ce soit la réplique du code source que vous avez compilé et exécuté.
Lavez vous modifié pour que ça marche?
La version du compilateur J2SDK est 1.5

Je vais voir si je peux téléchargerune JVM platforme windows.

Je comprend un peu mieux maintenent.
Merci
14 Août 2005 10:10:56

Citation :
Lavez vous modifié pour que ça marche?

absolument pas. copier coller.

Citation :
Il présente 27 erreurs en tout

:D :D  pas mal ...
15 Août 2005 17:11:55

Salut Khayyam
Le SDK que j'avais téléchargé contient un JVM.Je supose que c'est dans cet environnement que j'ai pu compiler et éxécuer le code que vous m'avez passé, mais je ne comprend toujour pas pourquoi le fichié PremiereAppli.java ne se compile pas.
Il y a un truc!

Salutations,
Anonyme
1 Mars 2010 22:14:32

salut
quand je compile avec javac
il me donne
javac n'est pas reconnu en tant que commande interne ou externe.
aidez moi.et merci beaucoup
1 Mars 2010 22:22:13

Citation :
salut
quand je compile avec javac
il me donne
javac n'est pas reconnu en tant que commande interne ou externe.
aidez moi.et merci beaucoup


il faut que tu installes le compilateur java sur ton pc :

Voila un bon tutoriel pour toi, il t'expliquera tout pour pouvoir compiler du java : http://www.objis.com/formation-java/tutoriel-java-installation-jdk-6.html
21 Avril 2010 21:04:29

Bonjour, j'ai moi aussi un problème de compilation avec java. Je commence juste à m'y initier, avec "java pour les enfants, les parents et les grands parents", et d'autres trucs que je trouve sur internet. Je suis sous windows XP, et j'ai la version jdk1.
J'ai suivi les instructions à la lettre, j'ai écrit le programme dans le bloc-notes, identique à ce qui est écrit sur le manuel (espaces majuscules et tout ça), et je l'ai enregistré sous le nom BonjourMonde.java.
Ensuite j'ai rentré les données CLASSPATH= .;
et pour PATH=;C:\Documents and Settings\Compaq_Propriétaire\jdk1.6.0_19\bin
(au début j'avais juste rentré le répertoire du dossier jdk1, ce qui donnait: PATH=C:\Documents and Settings\Compaq_Propriétaire,
puis avec
PATH=C:\Documents and Settings\Compaq_Propriétaire\jdk1.6.0_19
mais ça ne fonctionnait pas, alors j'ai carrément rajouté le répertoire où étais Javac (bin), je ne sais pas si j'ai bien fait)
Lorsque je suis dans l'invité de commande, et que je tape DIR, je vois bien dans le répertoire C:\Documents and Settings\Compaq_Propriétaire qu'il y a le dossier de jdk1.
Et lorsque je tape SET et que je regarde les variables, je vois bien les variables PATH et CLASSPATH que j'ai rentrées.
Alors ensuite, dans l'invité de commande, à la suite du répertoire je rentre les données pour compiler, en suivant les instructions:
C:\Documents and Settings\Compaq_Propriétaire>javacBonjourMonde.java

Et ça me répond 'javac.BonjourMonde.java' n'est pas reconnu en tant que commande interne ou externe, ou programme exécutable, ou un fichier de commandes.
Je sais que ce genre de question a été posé 10000fois, mais j'ai beau chercher dans les forums, essayer toutes les solutions que je vois dans différents posts, et refaire la manipulation plusieurs fois, ça fait deux jours que je bloque alors je me décide à poster. J'ai sûrement oublié un truc, ou mal fait une manipulation, mais je n'arrive pas à trouver quoi. Quelqu'un pourrait m'éclairer svp?
Merci d'avance
a b L Programmation
21 Avril 2010 22:55:07

c'est un espace pas un point entre javac et le fichier .java
21 Avril 2010 23:39:11

Merci pour ta réponse. Oups désolée, j'ai fait une faute dans le post, mais dans l'invité de commande en fait j'ai essayé avec et sans espace. Mais ça ne fonctionne pas. Quand je l'écris correctement (donc avec un espace) ça me répond:
"javac: fichier non trouvé: BonjourMonde.java
Usage: javac <options><source files>
utiliser l'assistant pour une liste d'options possibles"

En gros il ne trouve pas mon fichier BonjourMonde c'est bien ça? Pourtant je l'ai mis dans le dossier jdk1

a c 232 L Programmation
22 Avril 2010 09:15:34

Il faut que tu sois dans le dossier jdk1 si tu veux qu'il trouve le fichier BonjourMonde.java ou sinon tu fais
javac jdk1/BonjourMonde.java
22 Avril 2010 11:02:57

Merci Omar ça fonctionne enfin!!! merci baucoup
22 Avril 2010 11:46:14

aaaaah non j'ai parlé trop vite en fait ça me marque la chose suivante:
jdk1.6.0_19\bin\BonjourMonde.java:1: '{' expected
public class BonjourMonde (
^
jdk1.6.0_19\bin\BonjourMonde.java:3: ';' expected
public static void main(string[] args) (
^
jdk1.6.0_19\bin\BonjourMonde.java:6: illegal start of type
)
^
jdk1.6.0_19\bin\BonjourMonde.java:6: ';' expected
jdk1.6.0_19\bin\BonjourMonde.java:8: reached end the file while parsing
)
^
5 errors

Voilà, alors en gros y'a des erreurs dans les caractères que j'ai saisi dans le fichier BonjourMonde, c'est bien ça? J'ai essayé de corriger plusieurs trucs, mais cela ne fonctionne toujours pas. Quelqu'un peut m'éclairer? Merci
a c 232 L Programmation
22 Avril 2010 13:13:33

Sans avoir le contenu de ton fichier BonjourMonde.java ça va être compliqué...

Bien que de là, on dirait que tu utilises des parenthèses () au lieu d'accolades {}.
  1. public class BonjourMonde {
  2. public static void main(string[] args) {
  3. ....
  4. }
  5. }
22 Avril 2010 14:13:09

Voici un copié collé de ce qu'il y a marqué sur le manuel en ligne que j'utilise:

public class BonjourMonde {

public static void main(String[] args) {
System.out.println("Bonjour Monde");
}

}


J'ai carrément fait un copié/collé sur le bloc-notes et enregistré.
Ensuite lorsque j'essaye de compiler dans l'invité de commandes avec l'emplacement exact du fichier:
javac jdk1.6.0_19/bin/BonjourMonde.java

Et ben ça me remt à l'emplacement
C:/documents and settings/compaq_propriétaire>
AAAAh je sais plus quoi faire!!! Quelle erreur ai-je faite?
a c 232 L Programmation
22 Avril 2010 15:32:26

Tu n'as pas eu d'erreur ? Ca veut probablement dire que la compilation a réussie.
Tu devrais avoir un fichier BonjourMonde.class dans ton dossier "compaq_propriétaire" ou bin/ je sais plus comment javac s'organise.
25 Avril 2010 22:14:01

javac fic.java
java fic

Ne marche pas non plus ?
26 Avril 2010 15:40:07

Bah je n'en sais rien, à toi de nous le dire.
(PS: si ton fichier fic.java contient ta classe avec le main, mais qu'elle ne s'appelle pas fic, tu risques d'avoir des ennuis.)
26 Avril 2010 16:00:16

Non c'est une solution que je propose +D C'est pas moi le créateur du post :p 
26 Avril 2010 16:10:38

Ah pardon, je ne sais plus lire. Houlala. Pourtant, keby et Apaachee, il n'y a pas beaucoup de lettres en commun...
26 Avril 2010 16:42:29

Rakipu a dit :
Ah pardon, je ne sais plus lire. Houlala. Pourtant, keby et Apaachee, il n'y a pas beaucoup de lettres en commun...

:D  :D  :D 

17 Septembre 2010 00:11:54

salut a tous j'utilise le meme livre que kebby et j'ai fait éxactement ce qu'il a fait mais quand je tape dir je ne vois pas mon fichier
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS