Probleme chemin fichier [Résolu]

Messages postés
211
Date d'inscription
mercredi 15 juin 2011
Dernière intervention
15 mars 2013
- - Dernière réponse : profiter
Messages postés
211
Date d'inscription
mercredi 15 juin 2011
Dernière intervention
15 mars 2013
- 19 sept. 2011 à 16:11
bonjour,


A ta place, je créerais un nouveau dossier source dans lequel je refais l'arborescence des packages de ton dossier initial et dans la classe ou tu as besoin de ton image, tu tapes

Code Java :

ImageIO.read(getClass().getResource("IMM.PNG")



Ça te permettra de ne pas t'embêter avec les chemins et tu pourras exporter ton projet plus facilement.

si vous vous rappelez de cette reponse que j'ai recu de Julien39 (je le remercie )

tu as raison lorsque j'ai fait le jar si je l'execute pas dans le repertoire du projet les images ne s'affiche pas
mais meme cette methode franchement ca ne ma pas marché
la preuve :
j'ai tlechargé le selecteur d'image de Julien39 qui contient ca voila un extrait :
public Lanceur(){
try {
images.add(ImageIO.read(getClass().getResource("bleu.JPG")));
images.add(ImageIO.read(getClass().getResource("gris.JPG")));
images.add(ImageIO.read(getClass().getResource("jaune.JPG")));
images.add(ImageIO.read(getClass().getResource("noir.JPG")));
images.add(ImageIO.read(getClass().getResource("rose.JPG")));
images.add(ImageIO.read(getClass().getResource("rouge.JPG")));
images.add(ImageIO.read(getClass().getResource("vert.JPG")));
} 
catch (IOException e) {
e.printStackTrace();
}
}

je l'ai importé dans eclipse
mais il me genere cette erreur concernat le chemin
la voila :
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
at fr.julien.imageswitcher.lanceur.Lanceur.(Lanceur.java:21)
at fr.julien.imageswitcher.lanceur.Lanceur.main(Lanceur.java:35)

la ligne 21 est :
images.add(ImageIO.read(getClass().getResource("bleu.JPG")));


merci
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
3
Merci
C'est vrai que cette façon de faire fonctionne et possède certains avantages (les mêmes que de créer un nouveau dossier sources et de faire getClass().getRessource()). Cependant, il existe de nombreux désavantages (pour les deux méthodes) une fois le .jar créé :

- Tu ne pourras pas modifier les ressources du dossier ressources puisqu'elles auront été compressées dans le .jar

- Tu ne pourras pas non plus ajouter des ressources pour la même raison

Tu peux alors exporter le dossier ressources dans un dossier à part et là, tu te retrouves dans un cas ou pour fonctionner le .jar a besoin de savoir ou se trouve le dossier ressources. Dans ce cas la le mieux est d'utiliser des chemins absolus et de spécifier systématiquement un chemin vers un répertoire d'installation qui contient une arborescence spécifique que l'on peut définir (Par exemple vers C:\Program files\NomDeTonAppli).

Et ensuite, tu créés un logiciel d'installation avec InstallAnyWhere ou équivalent.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
211
Date d'inscription
mercredi 15 juin 2011
Dernière intervention
15 mars 2013
0
Merci
cayé
j'ai trouvé il faut que le repertoire qui contien les images soit un repertoire source

ou l'ajouter au java built path sources

merci
Commenter la réponse de profiter
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
0
Merci
Bonjour,

Bon, tu as résolu ton problème tout seul. Je ne te serai donc d'aucune utilité.

Oui, c'est vrai que quand tu fais getClass().getRessource(), tu accèdes à une ressource qui se trouve dans le même package que la classe courante.

Pour ne pas mélanger code et images, on peut créer un nouveau dossier source qui s'appelle images et qui contient toutes les images, mais il faut veiller à placer les images dans le meme package que la classe qui les appellent.
Commenter la réponse de cs_Julien39
Messages postés
39
Date d'inscription
vendredi 27 février 2009
Dernière intervention
26 septembre 2011
Commenter la réponse de Fauchmanne
Messages postés
211
Date d'inscription
mercredi 15 juin 2011
Dernière intervention
15 mars 2013
0
Merci
c'est pas votre message c'est du Icarius44
n'est ce pas
Commenter la réponse de profiter
Messages postés
39
Date d'inscription
vendredi 27 février 2009
Dernière intervention
26 septembre 2011
0
Merci
Je parle de mon dernier message dans ce fil, en bas, dans les réponses, écrit le le 25/03/2009 à 09:14:47
Commenter la réponse de Fauchmanne
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
0
Merci
Le message en question est le suivant :

En fait, amha le plus clean c'est :
1) créer un nouveau "Source Folder" dans le projet (dans le menu du clic-droit sur le projet, depuis le package explorer par exemple), appellé "resources" (puisqu'on peut y mettre autre chose que des images, en fait)
2) y importer (clic droit sur ce nouveau répertoire, "Import...") les fichiers voulus depuis un répertoire "neutre" (= non situé dans le Javaworkspace)
3) si on ajoute "à la main" (= depuis l'extérieur d'Eclipse) des fichiers dans le répertoire "resources", il faudra faire "Refresh" dans le projet pour que tout soit synchro.
4) on accède auxdites ressources par un nom de forme "/"+nomFichier

En fait Eclipse va placer à la compilation les fichiers dans [projet]/bin, ce qui permettra de faire tourner l'appli depuis Eclipse, et dans le .jar quand on exportera l'appli.
Commenter la réponse de cs_Julien39
Messages postés
39
Date d'inscription
vendredi 27 février 2009
Dernière intervention
26 septembre 2011
0
Merci
Il me semble qu'il y a même moyen d'ajouter et/ou de modifier dans le jar non ? Je n'ai jamais vraiment utilisé à fond, mais il y a <link>http://download.oracle.com/javase/7/docs/api/java/util/jar/package-summary.html</link>
Commenter la réponse de Fauchmanne
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
0
Merci
Je me suis mal exprimé, tu peux modifier le contenu du .jar mais, ce n'est pas un fonctionnement acceptable pour l'utilisateur. Celui-ci préfère ouvrir un dossier et lire les fichiers qu'ils contient, modifier et enregistrer. Ce qui n'est pas possible avec un jar.

On ne voit d'ailleurs pas de programme dans lesquels tu peut modifier les fichiers de config contenu dans un jar.

De plus, c'est de la modification d'un programme exécutable ce qui n'est pas toujours légal, ca pourrait être utilisé comme un moyen de contourner les DRM par exemple. Il existe d'ailleurs des logiciels qui servent à "pourrir" ton fichier .jar pour éviter que celui ci soit décompilé.

Et enfin, ca pose un énorme problème de mise à jour. En effet, si ton programme est constitué d'un ensemble de fichiers de config et d'un jar exécutable, la mise à jour est simple, il suffit d'écraser le .jar. En revanche, si les fichiers de paramètre sont à l'intérieur du jar, tu écrases systématiquement la configuration courante et la taille de tes mises à jour peut être beaucoup plus importante.
Commenter la réponse de cs_Julien39
Messages postés
211
Date d'inscription
mercredi 15 juin 2011
Dernière intervention
15 mars 2013
0
Merci
je m'exuse a fautchmane
j'ai pas vu en bas
Commenter la réponse de profiter

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.