Utiliser les Ressources (image, fichier) d'un fichier JAR
1 réponse
Thibaut Desmarest
Bonjour à tous,
Mon problème est le suivant :
Pour le programme que je suis en train d'écrire, je souhaite qu'il soit
possible de faire une archive exécutable .jar
J'ai bien réussi à créer l'archive avec toutes les classes de tous les
packages, et elle s'éxécute bien quand on double clique dessus.
Cependant, (sinon ce serait pas drôle), j'ai des problèmes pour accéder
aux ressources (images, fichier de langue) que j'ai inclues dans le jar.
Si je met le dossier "Ressources" à côté du fichier jar, ET que ce
dossier est AUSSI inclus dans l'archive alors tout marche très bien.
Mais si j'enlève le dossier de l'archive, alors je n'ai plus accès au
fichier de langue (il n'est pas capable d'aller le chercher dans le
dossier à côté). J'ai toujours les images.
Si par contre je supprime le dossier qui est à côté du jar mais que je
laisse ce dossier "Ressources" dans le jar, alors c'est le contraire,
j'ai les langues mais pas les images !!!
J'aimerais que ca marche en ayant tout dans le jar, pouvez vous m'aider ??
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thomas Baruchel
On Fri, 10 Sep 2004 17:56:07 +0200, Thibaut Desmarest wrote:
J'aimerais que ca marche en ayant tout dans le jar, pouvez vous m'aider ?? C'est assez simple. Tu dois passer par la classe ClassLoader qui
correspondra à ton jar. Personnellement, je fais: - en statique, si ma classe s'appelle Truc: Truc.class.getClassLoader() - en dynamique, pareil en remplaçant truc par this (il y a peut-être autre chose à changer, je n'ai plus cela en tête: peut-être this.getClass().getClassLoader() à vérifier)
Une fois que tu as ton ClassLoader (j'appelle en général le mien: myClassLoader)
Tu disposes de la méthode getResource() pour accéder à un 'fichier' ; elle te retourne une URL. A partir de cette URL tu peux créer des ImageIcon, afficher du HTML dans un JTextPane, etc.
Amicalement,
-- Thomas Baruchel To contact me, please, see at: http://cerbermail.com/?OEyHGNQFEa Home Page: http://tbaruchel.free.fr/
J'aimerais que ca marche en ayant tout dans le jar, pouvez vous m'aider
??
C'est assez simple. Tu dois passer par la classe ClassLoader qui
correspondra à
ton jar. Personnellement, je fais:
- en statique, si ma classe s'appelle Truc:
Truc.class.getClassLoader()
- en dynamique, pareil en remplaçant truc par this (il y a peut-être
autre chose
à changer, je n'ai plus cela en tête: peut-être
this.getClass().getClassLoader()
à vérifier)
Une fois que tu as ton ClassLoader (j'appelle en général le mien:
myClassLoader)
Tu disposes de la méthode getResource() pour accéder à un 'fichier' ; elle
te retourne
une URL. A partir de cette URL tu peux créer des ImageIcon, afficher du
HTML dans un
JTextPane, etc.
Amicalement,
--
Thomas Baruchel
To contact me, please, see at: http://cerbermail.com/?OEyHGNQFEa
Home Page: http://tbaruchel.free.fr/
On Fri, 10 Sep 2004 17:56:07 +0200, Thibaut Desmarest wrote:
J'aimerais que ca marche en ayant tout dans le jar, pouvez vous m'aider ?? C'est assez simple. Tu dois passer par la classe ClassLoader qui
correspondra à ton jar. Personnellement, je fais: - en statique, si ma classe s'appelle Truc: Truc.class.getClassLoader() - en dynamique, pareil en remplaçant truc par this (il y a peut-être autre chose à changer, je n'ai plus cela en tête: peut-être this.getClass().getClassLoader() à vérifier)
Une fois que tu as ton ClassLoader (j'appelle en général le mien: myClassLoader)
Tu disposes de la méthode getResource() pour accéder à un 'fichier' ; elle te retourne une URL. A partir de cette URL tu peux créer des ImageIcon, afficher du HTML dans un JTextPane, etc.
Amicalement,
-- Thomas Baruchel To contact me, please, see at: http://cerbermail.com/?OEyHGNQFEa Home Page: http://tbaruchel.free.fr/