Je travaille sous Eclipse et j'avais initialement un souci d'affichage de mes images dans le jar. En suivant les instructions du forum, j'ai pu avoir mon jar avec les images et les pdfs. Je pensais que tout était bon, j'ai voulu distribuer le programme sur les pc du boulot mais lorsque j'ai lancé le jar, je n'avais plus d'images ni même de pdfs, alors que le jar sur mon pc les contient. Je ne comprends pas d'où vient le problème, quelqu'un pourrait m'éclairer?
Ton JAR contient-il les fichiers ? Ouvre le JAR avec ton logiciel d'archivage (WinRAR, 7zip, ...)
Comment charges-tu tes fichiers ? new File("foo.jpeg") ? c'est la mauvaise méthode (cela fonctionne dans l'IDE mais pas quand tu es DANS un JAR car il s'agit d'une arborescence distincte) Il faut utiliser les ressources comme ceci : getClass().getResourceAsStream("/foo.jpeg")
Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
Lorsque j'ouvre le JAR j'ai bien les fichiers, toutes les images et les pdfs. J'essaierai de voir au boulot demain si les JAR sur les autres postes contiennent bien les images. Pour incorporer les images, j'ai crée un dossier images dans le Build Path-> Source et j'y ai placé les images et les pdfs. Alors pour charger mon icône, j'ai utilisé :
Je pense qu'avec les chemins absolus cela devrait fonctionner. Mais cela n'est pas la meilleure solution : mieux vaut tout packager dans le JAR pour faciliter le déploiement, les mises à jour, ...
Les fichiers situés dans le JAR sont considérés comme des ressources. Tu peux les récupérer facilement comme dans mon exemple.
Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
J'ai ouvert le JAR sur les différents postes, le programme se lance toujours sans les pdfs et les images par contre quelque chose que je ne comprends pas : c'est qu'avec Winrar j'arrive à ouvrir le JAR sur le pc sur lequel j'ai codé mais sur les ordis où je l'ai distribué Winrar n'arrive pas l'ouvrir. En installant Eclipse sur un des postes et en exportant le programme en JAR, les images et les pdfs sont présents. Et autre chose quand tu dis tout packager dans le JAR, je n'arrive pas comprendre : j'ai deux packages celui par défaut (main + code) et celui avec les images, du coup comment je dois gérer l'export en JAR ?
J'ai le package par défaut et un package que j'ai crée "fr.ato.images" dans lequel je place mes images, je fais un refresh, les images apparaissent alors dans l'arborescence. Ensuite j'exporte mon JAR et j'obtiens le programme que je souhaite, mais lorsque je place ce même JAR su un autre poste, je perds les images et les pdfs.
Merci je viens d'intégrer les images dans le JAR en utilisant getClass().getResourceAsStream("/image.jpg). J'ai juste une dernière question pour terminer le projet, j'utilise le code suivant pour intégrer mes pdfs dans le JAR :
if (Desktop.isDesktopSupported()) { try { InputStream is = getClass().getResourceAsStream("ModelesILQ.pdf"); byte[] data = new byte[is.available()]; is.read(data); is.close(); String tempFile = "ModelesILQ.pdf"; File temp = File.createTempFile(tempFile, ".pdf"); FileOutputStream fos = new FileOutputStream(temp); fos.write(data); fos.flush(); fos.close(); Desktop.getDesktop().open(temp); } catch (IOException ex) { ex.printStackTrace(); System.out.println("NO PDF READER INSTALLED"); } }
Cela fonctionne très bien dans l'IDE mais avec le JAR, lors du lancement du pdf, j'ai le message d'erreur suivant : Impossible d'ouvrir le fichier, nous rencontrons un problème de format avec ce fichier. Aurais-tu une idée?
J'arrive à le lancer sans aucune erreur quand je le compile dans l'IDE, c'est dans le JAR que je rencontre le problème d'ouverture. Il me dit : "impossible d'ouvrir le fichier". Du coup j'utilise plutôt ce code qui marche :
try { File pdf2 = new File("OAR.pdf"); FileOutputStream fos2 = new java.io.FileOutputStream(pdf2); while (pdfInJar2.available() > 0) { fos2.write(pdfInJar2.read()); } fos2.close(); Desktop.getDesktop().open(pdf2); } catch (IOException e) { e.printStackTrace(); } } });
Il fonctionne bien mais met un peu de temps avec de lancer le pdf : il en fait une copie avant de l'ouvrir.
Merci pour le coup de main, c'était vraiment sympa, je vais pouvoir passer le programme aux collègues.
ATO
ATo
[JAVA jar images] Absence d'images dans le Jar
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.