Voila, je travaille sous Eclipse, et j'ai l'habitude de créer des jar avec Eclipse, et ça se passait toujours sans problème. Maintenant, j'ai importe la librairie JDIC (et ses 3 jar) dans mon projets, et j'ai créé un manifest avec le chemin d'accès aux jar du JDIC
Le problème, c'est que maintenant, les JAR ne s'exécutent plus, puisque j'ai un message d'erreur :
"Could not find the main class. program will exit"
Voici le contenu de mon manifest :
Manifest-Version: 1.0
Main-Class: evolution.Interface
Class-path: lib/jdic_stub.jar lib/jdic.jar lib/packager.jar
Et pr l'arborescence de mon projet, c'est là :
http://img62.imageshack.us/img62/4643/eclipseworkspacesa4.jpg
Merci d'avance pour votre aide.
Quels jars ? les jars de JDIC devraient ils s'exécuter ?
Quelle main class ? De evolution, d'autre chose ?
En attendant que tu précises ta question, sur la capture d'écran que tu donnes, je ne vois pas que les jars en question résident dans le répertoire lib. Ceci expliquerait il cela :?:
Et puis tu sais, s'il faut être précis quand on pose une question ;) il faut aussi et surtout l'être quand on donne une directive à l'ordinateur.
Répertoire lib :?: :?: relatif ? absolu ? Il me semble que
Class-path: ./lib/jdic_stub.jar lib/jdic.jar ./lib/packager.jar
Serait beaucoup mieux. A condition que les jars soient dans lib, évidemment.
ok. alors précisons les choses :
-il n'y a bien qu'un seul jar que j'exécute.
en lançant le jar en commande ms dos, j'ai obtenu un message d'erreur plus détaillé qu'en double cliquant sur mon jar :
Est ce que ça renseigne plus?
les 3 jars sont effectivement ajoutés dans le dossier lib de mon projet, dossier qui est exporté avec les autres lors de la création du jar.
Et si j'essaye de bidouiller, à savoir de mettre le jdic.jar dans le même dossier que le jar de mon projet, et donc que j'ajoute à mon jar un manifest avec la clause :
Class-Path : ~/jdic.jar
alors j'obtiens un autre message d'erreur :
invalid header field name : Class-Path
Pour sûr. Il n'est donc plus du tout question de "the main class" mais d'une classe de JDIC qui n'est pas trouvée au démarrage.
Franchement ce que tu dis maintenant et ce que tu as hier sont deux choses qui n'ont rien (mais alors rien) en commun. Comment cela peut il se faire ?
Si elle n'est pas trouvée, c'est que le CLASSPATH n'est pas correct, mais ça tu le sais déjà je pense.
Si tu le dis...
Mais la capture que tu donnes ne montre pas que les jar soient dans le répertoire lib. Enfin bon, je n'insiste pas.
La JVM ne comprends pas ~, ce qui est assez normal, surtout sous Windows (toujours si j'en crois ta capture)
Pourquoi pas tout simplement:
Class-Path : ./jdic.jar
ok, bon en fait, maintenant, mon workspace a pas mal changer alors je remet un nouveau screenshot.
la différence, maintenant, c'est que la version du jdic que j'utilise est spécifique à plusieurs OS : windows, linux et sunOs
le jar jdic.jar est dans le dossier lib
En fait, ce que je veux, c'est qu'il aille chercher cette librairie jdic.jar dans le dossier lib au début de l'exécution. Ce qu'il ne va apparemment pas faire...
EDIT : je viens d'avoir une idée, qui est la bonne. en indiquant lib/jdic.jar, je me suis dit qu'il allait chercher le jar au chemin relatif /lib/jdic.jar dans le dossier où se trouve le jar exporté d'eclipse
donc bonne nouvelle, j'ai trouvé comment faire marcher à l'export
mais pr l'instant, la mauvaise nouvelle, c'est que je suis réduit à utiliser mon programme uniquement sur mon pc...
Qui il ?
Une idée ? Tu ne manques pas d'air. Je te l'ai dit dès mon premier post de mettre un répertoire relatif. C'est un plaisir de voir que tu tiens compte de ce qu'on te dit.
Bel exploit. Sinon tu as toujours la solution de créer ton jar à la main. Ca n'a rien de compliqué.
Et bien renonce à mettre le classpath dans le jar et configure le à la volée dans ton application lors de son démarrage.