Probléme pour éxecuter programme - Java - Programmation
Marsh Posté le 11-08-2005 à 15:33:15
la commande java prend en argument un nom complet de classe, pas le chemin vers le fichier java
Marsh Posté le 11-08-2005 à 15:36:30
il ne faut pas mettre le ".java" :
/local/chemin2/java /home/chemin1/projet arguments
Marsh Posté le 11-08-2005 à 15:37:40
car java remplace les "." par des "/" et il croit que tu veux excuter le programme : "java.class" qui est dans le repertoire : /home/chemin1/projet/
Marsh Posté le 11-08-2005 à 15:41:56
ali0baba a écrit : il ne faut pas mettre le ".java" : |
mais nan
/local/chemin2/java projet arguments |
au passage :
* les conventions veulent qu'une classe commence par une majuscule
* il est préférable d'utiliser des packages
* 10 contre 1 que le classpath n'est pas ou mal configuré
Marsh Posté le 11-08-2005 à 15:44:51
encore un prob de classpath ça http://forum.hardware.fr/hardwaref [...] 1088-1.htm
Marsh Posté le 11-08-2005 à 15:45:26
http://java.sun.com/docs/books/tutorial/
edit: problème de classpath?
Il essaie d'exécuter son .java
Marsh Posté le 11-08-2005 à 15:57:52
ali0baba a écrit : il ne faut pas mettre le ".java" : |
plutot un truc comme ca :
/local/chemin2/java -classpath /home/chemin1 projet arguments
Marsh Posté le 11-08-2005 à 16:23:28
Alors si je fait projet sans extension ca me donne:
Exception in thread "main" java.lang.NoClassDefFoundError: /home/projet/InfosServeurs/Serveur/Tomas (wrong name: Serveur/Tomas)
at java.lang.ClassLoader.defineClass0(Native Method)
Alors voilà les vrais nom du chemin!
Par contre j'utilise bien des packages, "Serveur", d'autres fichier java se trouvant dans d'auteres package, la base commune étant InfosServeurs.
Pour mon classpath, il marche trés bien avec eclipse. Si je dois le refaire, j'ai pas compris les 2 méthodes du tutorial. Ca se fait avant de lancé le prog ou alors ca se fait en meme temp? Il m'affiche l'aide de java (???)
Marsh Posté le 11-08-2005 à 16:57:39
IrishDwarf a écrit : Ca se fait avant de lancé le prog ou alors ca se fait en meme temp? Il m'affiche l'aide de java (???) |
les deux méthodes sont possibles
quand tu donnes un message d'erreur, écris la ligne de commande qui a généré cette erreur, par ce que là je suis dans le floux !
Marsh Posté le 11-08-2005 à 17:04:20
Désolé! Voilà la commande
/local/Borland/JBuilder2005/jdk1.4/jre/bin/java /home/projet/InfosServeurs/Serveur/Tomas /home/projet/InfosServeurs/adressesIP.txt
J'ai essayé celle avec java (j'ai pas trouvé javac) et il me donne l'aide (comme un "man" ou un "-h" ), voilà la ligne:
/local/Borland/JBuilder2005/jdk1.4/jre/bin/java -classpath /home/jexcelapi/jxl.jar; /home/projet/InfosServeurs/Serveur/Tomas /home/projet/InfosServeurs/adressesIP.txt
Marsh Posté le 11-08-2005 à 19:12:43
remplace /home/projet/InfosServeurs/Serveur/Tomas par Serveur.Tomas et /home/jexcelapi/jxl.jar; par /home/jexcelapi/jxl.jar;/home/projet/InfosServeurs/
Marsh Posté le 12-08-2005 à 10:19:29
Je tape:
/local/Borland/JBuilder2005/jdk1.4/jre/bin/java -classpath /home/jexcelapi/jxl.jar ; /home/projet/InfosServeurs/ /home/projet/InfosServeurs/Serveur.Tomas /home/projet/InfosServeurs/adressesIP.txt
Et il me fournit encore la même erreur, il affiche l'aide (comme pour un -h). Il y aurait pas une erreur d'écriture encore qui traine?
De plus je me suis rendu compte qu'à la fin il y avait:
/home/kzerelli/projet/InfosServeurs/: Permission denied.
Pourtant dans ce répertoire toutes les autorisation sont OK!
Marsh Posté le 12-08-2005 à 10:24:56
IrishDwarf a écrit : Je tape |
mais tu as pas fait ce que je t'ai dit
|
Marsh Posté le 12-08-2005 à 10:40:26
Là moi je comprend pas!!
Je copie ta ligne de commande et j'ai toujours le même résultat!
Marsh Posté le 12-08-2005 à 21:36:30
en même temps, j'essaye de deviner ton environnement de travail vu que tu nous l'as pas décrit. Mais avec la ligne de commande que je t'ai filé, c'est impossible que tu ais *exactement* le même résultat. le massage d'erreur est forcémenent différent.
Bref, décrit mieux ton environnement, et quand tu une erreur indique la ligne de commade exacte et le message d'erreur exacte obtenus sinon on a aucune chance de s'en sortir !
Marsh Posté le 16-08-2005 à 10:07:36
Ben euh .... mon environnement.... c'est linux redhat
Je travail avec eclipse 3.0.2
Ma jre system c'est la 1.4
Voilà maintenant ce que j'ai:
Citation : (1) -> /local/Borland/JBuilder2005/jdk1.4/jre/bin/java -classpath /home/jexcelapi/jxl.jar;/home/projet/InfosServeurs/ Serveur.Tomas /home/projet/InfosServeurs/adressesIP.txt |
Marsh Posté le 16-08-2005 à 10:52:53
En fait je me demande : il serait pasz plus simple et plus propre d'exporter le projet sous la forme d'un jar exécutable ou d'autre chose?
Mon but final étant de livré un éxécutable?
Si oui, y a t il un moyen d'y joindre la librairy que j'ai rajouté?
Marsh Posté le 16-08-2005 à 10:59:52
Un JAR c'est pas magique
Si ça fonctionne pas en l'état actuel il n'y a aucune raison pour que ça fonctionne une fois en jar
Marsh Posté le 16-08-2005 à 11:15:41
Le truc c'est que ca fonctionne bien sous eclipse, alors je me disais qu'en exportant depuis eclipse...
Marsh Posté le 16-08-2005 à 11:35:12
surement con comme remarque, mais tu es au courant que sous linux/unix pour separer les entrées dans ton classpath, il faut utiliser ":" et pas ";" ?
Marsh Posté le 16-08-2005 à 13:39:50
Alors j'ai utilisé cette ligne de commande:
Citation : /local/Borland/JBuilder2005/jdk1.4/jre/bin/java -classpath /home/jexcelapi/jxl.jar : /home/projet/InfosServeurs/ Serveur.Tomas /home/projet/InfosServeurs/adressesIP.txt |
Et j'obtient:
Citation : Exception in thread "main" java.lang.NoClassDefFoundError: : |
Marsh Posté le 16-08-2005 à 15:14:08
t'as mis un espace entre jxl.jar et : c'est normal ?
Marsh Posté le 16-08-2005 à 17:04:33
Même les espaces comptent!!! Je vais devenir fou!!!
Je tape:
Citation : /local/Borland/JBuilder2005/jdk1.4/jre/bin/java -classpath /home/jexcelapi/jxl.jar: /home/projet/InfosServeurs/ Serveur.Tomas /home/projet/InfosServeurs/adressesIP.txt |
et j'obtient:
Citation : Exception in thread "main" java.lang.NoClassDefFoundError: /home/projet/InfosServeurs/ |
Marsh Posté le 16-08-2005 à 17:11:57
essaie ca:
Code :
|
pas d'espace avant NI apres les : ...
Marsh Posté le 16-08-2005 à 17:12:28
et essaie de comprendre le message d'erreur, il est plutot facile a saisir celui la
Marsh Posté le 16-08-2005 à 17:22:22
Euh y a pas de messages d'erreurs!!!!!!
Ca marche.....
Souk tu veux m'épouser? Je t'aimes tu sais! toi aussi benou, je vous aime tous!!!!!!!
Marsh Posté le 16-08-2005 à 17:33:17
euh ca:
Code :
|
c'est un message d'erreur hein
Marsh Posté le 11-08-2005 à 15:16:28
Alors voilàje sait qu'il y a un forum pour ca mais je comprend pas les explications!
Alors voilà ma situation:
J'ai un programme composé de plusieurs fichier java et class, ces fichier sont sous home (je suis sous linux!!!!!!!)
J'ai installé eclipse sous local (pas le choix!)
J'ai télécharger une jxl (jexcelapi) et je l'ai mise sous mon home
J'ai rattaché le jar de jexcelapi à la classpath dans Eclipse! Ca ca marche!
Mon programme s'éxécute sans erreurs et sans warning sous Eclipse! "jusque là tout vas bien..."
Mais il doit etre éxécuter depuis le shell!
Hé là je suis paumé! Je dois exécuter quoi le .class ou le .java?
Ma commande est celle ci:
/local/chemin2/java /home/chemin1/projet.java arguments
Et j'obtient:
Exception in thread "main" java.lang.NoClassDefFoundError: /home/chemin/projet/java
Si quelqu'un pouvais m'expliquer....
Merci d'avance.