Narrive pas à excuter un fichier compilé avec javac
Forum Programmation : Narrive pas à excuter un fichier compilé avec javac
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.
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}
};
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
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 ?
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.
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
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
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
| 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
Code :
|
me semble correct, je l'ai compilé / exécuteé sans soucis. C'est un "hello world".
| Citation : Comment on écrit un (reton 0 |
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.
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
| 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.
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
| 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
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
| Citation : Lavez vous modifié pour que ça marche? |
absolument pas. copier coller.
| Citation : Il présente 27 erreurs en tout |
D pas mal ...
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,
Il y a 804 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
