Compilation java

Fermé
Vik - 26 déc. 2007 à 11:50
 reddevil - 22 avril 2008 à 13:18
Bonjour,
Voici mon programme:

1er fichier Testfenetre.java

public class Testfenetre
{
public static void main (String arg[])
{
Fenetre maFenetre = new Fenetre("le nom",100,200,400,250);
}
}
2ème fichier Fenetre.java

import javax.swing.JFrame;
public class Fenetre extends JFrame
{
public Fenetre (String nom,int posX,int posY,int largeur,int hauteur)
{
super(nom);
setBounds(posX,posY,largeur,hauteur);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
}


Lors de la compilation il faut normalement Compiler avec javac le premier fichier soit:
javac Testfenetre.java
Puis executer avec java soit:
java Fenetre.java

Seulement il me mets le traditionnel "Exception in thread main java.Lang.NoClassDefError :Fenetre/Java

*Ma variable path pointe bien sur bin(javac et java)
*Ma variable d'environnement classpath je l'ai supprimé car j'utilise le JDK 1.6.0_03 (j'ai essayé de mettre en classpath le fichier de ma biliothèque cad C:\Program Files\Java\jdk1.6.0_03\src.zip mais pour préciser javax\swing\JFrame.java c'est problèmatique les \/ change de sens quand on est dans du fichier zippé)
[
https://www.webmaster-hub.com/publications/java-installation-du-jre-et-du-jdk/
est fortement recommandé, comme cela est préconisé par Sun, de ne pas définir de variable d’environnement « classpath »
]
*la cmd demarre bien la ou j'ai mes fichier.

En essayant de modifier le chemin de classpath, je me suis abruti et j'ai tapé une fois:
javac Testfenetre.java
ensuite:
java Testfenetre

Et la ma fenetre s'affiche!
Je n'ai pas de fichier Fenetre.class de créer je n'ai aucun fichier Fenetre.class

enfin merci de m'éclairer.
A voir également:

5 réponses

Salut,

"java Fenetre.class"

Pour lancer la classe, java ou javaw ne lance que la classe compilée (en période de fête ne pas confondre avec "glace compilée").
0
Alors une importante correction quand je compile j'ai bien mon fichier Fenetre.class
Helas quand je veux lancer java Fenetre.class cela marque toujours la meme exception

Mais je viens de vérifier dans mes cours d'info que l'ordre est:
javac Testfenetre.java
java Fenetre (sans extension)
0
Bonne appétit a tous
0
Re-

Le fichier "Fenetre.class" est un objet,

Le Fichier "testfenetre.class" est une application qui crée un objet "maFenetre" et qui l'affiche c'est donc nomal que fenetre ne fonctionne pas!

C'est Testfenetre qui contient la "void main".



Pour le reste: javac Testfenetre.java

Javac cherche les objets crés et utilisés dans Testfenetre.java , il y trouve Fenetre.java et du même coup compile les deux!

On retrouve donc Testfenetre.class et Fenetre.class mais dans les deux l'application est bien Testfenetre.class




(Milles excuses, dans le premier poste je n'avait pas tout lu....)
0

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

Posez votre question
pour executer ton java en ligne de commande:
java TestFenetre

il ne faut pas mettre l'extention du fichier pour l'exécuter ou alors il faut creer un .jar
0