Probleme chemin fichier [Résolu]

profiter 211 Messages postés mercredi 15 juin 2011Date d'inscription 15 mars 2013 Dernière intervention - 16 sept. 2011 à 22:52 - Dernière réponse : profiter 211 Messages postés mercredi 15 juin 2011Date d'inscription 15 mars 2013 Dernière intervention
- 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
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 19 sept. 2011 à 08:42
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.

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de cs_Julien39
profiter 211 Messages postés mercredi 15 juin 2011Date d'inscription 15 mars 2013 Dernière intervention - 17 sept. 2011 à 03:15
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
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 17 sept. 2011 à 10:24
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
Fauchmanne 39 Messages postés vendredi 27 février 2009Date d'inscription 26 septembre 2011 Dernière intervention - 17 sept. 2011 à 11:14
Commenter la réponse de Fauchmanne
profiter 211 Messages postés mercredi 15 juin 2011Date d'inscription 15 mars 2013 Dernière intervention - 17 sept. 2011 à 11:37
0
Merci
c'est pas votre message c'est du Icarius44
n'est ce pas
Commenter la réponse de profiter
Fauchmanne 39 Messages postés vendredi 27 février 2009Date d'inscription 26 septembre 2011 Dernière intervention - 17 sept. 2011 à 11:39
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
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 19 sept. 2011 à 08:35
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
Fauchmanne 39 Messages postés vendredi 27 février 2009Date d'inscription 26 septembre 2011 Dernière intervention - 19 sept. 2011 à 09:03
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
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 19 sept. 2011 à 10:53
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
profiter 211 Messages postés mercredi 15 juin 2011Date d'inscription 15 mars 2013 Dernière intervention - 19 sept. 2011 à 16:11
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.