Erreur dans les applis graphiques - Java - Programmation
Marsh Posté le 06-10-2002 à 13:35:58
ton classpath n'est pas correct.
met toi dans le rep où il y a le .class et tape
./java -classpath . HelloJavaSimple |
Marsh Posté le 06-10-2002 à 13:50:42
Ben si il est correct.
Code :
|
Et donc après :
Code :
|
Voila. Toujours aussi paumé. Par contre je précise que si je fais un prog qui ne marche qu'en ligne de commande ca marche mais dès que c'est graphique ca foire.
CHaiCA
Marsh Posté le 06-10-2002 à 14:12:41
chaica a écrit a écrit : Ben si il est correct. |
c'est cela oui. Déjà tu crois que mettre tes classes dans le rép bin va aider?
Fais comme Benou t'a dit
Marsh Posté le 06-10-2002 à 14:16:24
DarkLord: Excuse moi mais va falloir être plus précis.
Mon HelloJavaSimple.class est dans mon rep bin/ comme le montre mon ls.
Si je suis dans bin/ et que je tape ./java -classpath . HelloJavaSimple il recherche dans . cad bin/ donc où est le problème?
CHaiCA
Marsh Posté le 06-10-2002 à 14:17:40
bin c'est bien ce que je te reproche !!!
Tes classes sources et compilées n'ont rien à faire dans le répertoire bin ...
Cela dit, si ca ne fonctionne toujours pas avec la manip que Benou t'as donné je suis perplexe ... J'ai vu que tu as JDK 1.4 donc normallement ca doit etre bon
Marsh Posté le 06-10-2002 à 14:18:18
tu as un serveur X de démarré lorsque tu fais cette manip?
Marsh Posté le 06-10-2002 à 14:28:50
Ben oui. Mon serveur X tourne en ce moment même.
Et pour vous faire plaisir j'ai changé de paths mes fichiers donc maintenant je tape
Code :
|
Mais je me fais toujours bouler avec :
Code :
|
Ca doit être tout con mais je me demande qu'est ce que j'oublie.
CHaiCA
Marsh Posté le 06-10-2002 à 14:34:07
essaye de faire ca ./java -classpath .:$CLASSPATH HelloJavaSimple
edit : en fait je pense tout simplement que java ne trouve pas le fichier rt.jar (qui est ds jre/lib sous windows en tt cas )
ajoute le a ton classpath...
Marsh Posté le 06-10-2002 à 14:56:12
veryfree : Comment je fais pour l'ajouter à mon classpath?
CHaiCA
Marsh Posté le 06-10-2002 à 15:01:46
veryfree a écrit a écrit : essaye de faire ca ./java -classpath .:$CLASSPATH HelloJavaSimple edit : en fait je pense tout simplement que java ne trouve pas le fichier rt.jar (qui est ds jre/lib sous windows en tt cas ) ajoute le a ton classpath... |
si il y est. Si il n'y était pas tu n'aurais pas la stack trace du JOptionPane...
Marsh Posté le 06-10-2002 à 15:04:42
bon j'ai testé ton code et il fonctionne ...
Fait qd meme un
Code :
|
tu as un peut etre un vieux JDK installé sur ta machine
Marsh Posté le 06-10-2002 à 15:09:23
Bon récapitulons.
Mon HelloJavaSimple.java compile sans problèmes.
Je stock mes fichiers dans ~/java/
Mon fichier java est dans /j2sdk1.4/bin/
je tape donc :
Code :
|
Et ca m'envoie chier avec :
Code :
|
Voila. En espérant que quelqu'un voit le problème. Ca me ferait chier de demander ça à mon prof lundi (surtout que rien ne dit qu'il sache le résoudre lalalala)
CHaiCA
Marsh Posté le 06-10-2002 à 15:12:20
lance la JVM en mode verbose pour voir ce qu'elle fous (-v)
Marsh Posté le 06-10-2002 à 15:25:08
chaica@debianj2sdk1.4.1/jre/bin$ ./java_vm
java_vm process: could not find Java VM symbols
CHaiCA
Marsh Posté le 06-10-2002 à 15:31:25
chaica a écrit a écrit : chaica@debianj2sdk1.4.1/jre/bin$ ./java_vm java_vm process: could not find Java VM symbols CHaiCA |
c'est java -v tonProg qu il fallait faire ....
Marsh Posté le 06-10-2002 à 15:43:25
Je viens de le faire et il n'y a rien de flagrant. Il ne fait que des loaded et signale une erreur suivant ce que j'ai déja affiché plus haut dans le post.
CHaiCA
Marsh Posté le 06-10-2002 à 16:05:27
Mais ca n'a rien à voir avec un mauvais positionnement du fichier .class de toute facon puisque j'ai un programme en ligne de commande qui marche très bien.
C'est l'appel aux librairies graphiques qui semble bloquer le programme.
CHaiCA
Marsh Posté le 06-10-2002 à 16:59:33
bin vi j'avais bien compris. Mmmm je démarre mon serveur redhat tout à l'heure et je testerai ton code ...
Marsh Posté le 07-10-2002 à 10:11:44
Essaie déjà, en tout premier lieu, de savoir quel exécutable java tu utilises!!
en faisant :
which java
Parce que dans les distribs Linux, il y a souvent Kaffee par défaut, une implémentation GNU de Java...qui marche pas!!
Donc, première chose à faire, vérifier que tu utilises bien le binaire du jdk, le mieux, c'est d'ajouter ../jdk.../bin à ton PATH (tu édites ton .bashrc, ou ton .profile, ou carrément /etc/profile)
Après, il faut que tu crées une variable d'environnement JAVA_HOME, qui pointe vers la racine de ton install JDK (chez moi : /usr/local/jdk)
Ensuite, si tu utilises le bon binaire, le rt.jar est normalement par défaut adns ton classpath....
Mais bon, sinon, Dark a raison, aller mettre des .java et des .class dans $JAVA_HOME/bin, ça n'a aucun sens, mais si tu te démerdes bien, tu devrais pouvoir mettre tes sources et tes classes où tu veux sans aucune contrainte, et ça marchera, pour peu que tout soit bien configuré!
Marsh Posté le 07-10-2002 à 10:47:47
Ca plante dans cette fonction du JDK :
Code :
|
Ca me parait assez clair : le JAR qui permet à la JVM d'utiliser le serveur X n'est pas dans ton CLASSPATH.
Malheureusement, je travaille sur plate-forme Wintel, donc je ne pourrai pas te dire lequel. Mais si tu pouvais poster le contenu de ton CLASSPATH, cela permettrait peut-être aux UNIXiens ici présents de te dire ce qui manque...
Marsh Posté le 06-10-2002 à 12:35:17
Salut,
Je suis entrain de découvrir le java sous linux et j'ai un petit problème lorsque je tente de faire des applis toutes connes graphiques.
ex bateau :
Me retourne :
./java HelloJavaSimple
Exception in thread "main" java.lang.NoClassDefFoundError
Je précise que la compilation avec javac ne me donne aucune erreur et que l'exemple sort tout droit d'un bouquin.
Voilà, je suis un peu paumé
CHaiCA
Message édité par chaica le 06-10-2002 à 12:35:34