-
fichiers archive .jar
Slt, je viens de lire pleins de tutos pour rendre son programme executable d'un simple clic!!! sur developper.com et avec tous, j'ai la même erreur. Il ne trouve pas la class main...
Mon programme tourne trés bien sous Eclipse (le code est donc bon). J'ai fait avec la ligne de commande puis avec Eclipse (tjs la même erreur...). J'ai décompréssé le .jar généré par Eclipse et je me suis paerçoit que dans le fichier MANIFEST.MF, on ne trouve que :
Manifest-Version: 1.0
et pas le chemin vers le main (pourtant, j'ai dit à la fin à eclipse quelle était la classe avec le main...)
J'ai essayé plus d'une vingtaine de fois, si quelqu'un a une suggestion, je suis preneur!!!
Merci d'avance!!!
-
Indiquer la classe main à Eclipse c'est dans une config d'exécution ou dans l'assistant d'export vers un JAR ;) ? Dans l'assistant d'export, précise la classe contenant le main et demande à Eclipse de sauvegarder le MANIFEST dans ton workspace.
-
Effectivement, ça marche bien!!! merci beaucoup!!!
Par contre, il ne me trouve pas mes images que j'ai mises dans le dossier images/ à la racine du .jar et j'ai mis des chemins relatifs genre images/monimage.jpg
par contre, si je mets le fichier images à la racine du disque dur, et que je mets un chemin absolu, ça marche...
est-ce normal??
Merci d'avance:!!!
-
Il ne faut pas utiliser la même méthode pour charger des fichiers inclus dans une archive java et des fichiers externes.
Pour les fichiers externes : java.io.File, et là un chemin relatif se calcul à partir de l'emplacement d'exécution. Si les images sont dans ton jar, il n'existe que le JAR sur le système de fichier....
Pour les fichiers (ou ressources) internes : la méthode getResourceAsStream.
Code:
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("image/monImage.png");
-
Aille, ça veut donc dire que je douis revoir tout mon code à propos des images... si j'ai bien compris! Et ça ne marchera donc plus avec eclipse???
Merci d'avance!!!
-
Si tu changes ton code, il n'y a aucune raison qu'il ne fonctionne pas sous Eclipse.
-
le getRessource travaille par rapport au classpath, que ce classpath soit un ou plusieur jar, ou qu'il s'agisse (comme dans le cas du développement) d'une ensemble de sous répertoires.
-
Effectivement, ça marche bien!!! merci mais il faut que je mette le dossier image dans le dossier contenant mes codes .java de mes classes!
Est-ce possible de mettre les images à la racine du .jar? et donc d'utiliser un chemin relatif ../images/img.jpg ???
Merci d'avance:!!!
-
Qu'entends-tu par à la racine du jar ? Le répertoire "image" représente un package comme un autre, mais ne contenant aucun source java, uniquement des ressources.
Du coup je comprend mal la signification du "../images/img.jpg", pas besoin de chemin relatif dans le classpath ...
-
pour que le getResource marche dans eclipse, il faut que le dossier contenant "/images" soit répertorié dans les build-path, puisque c'est le buildpath qui déterminera le classpath à l'exécution sous eclipse.