java.lang.IllegalArgumentException: entrée == null! lors de l'utilisation de ImageIO.lire de chargement de l'image comme bufferedImage
C'est une question qui a été posée 100 fois sur ce site, mais j'ai regardé tous d'entre eux et même s'ils ont tous été résolus, aucune des solutions n'a fonctionné pour moi.
Voici ce que mon code ressemble à ceci:
public Button1(Client client, String imgName) {
this.client = client;
try {
this.icon = ImageIO.read(this.getClass().getResourceAsStream("/resources/" + imgName));
} catch (IOException e) {
e.printStackTrace();
}
Lorsque le code s'exécute, il génère l'erreur suivante:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
La chaîne imgName est transmis au constructeur d'une classe enfant et est le nom d'une image (par exemple image.png). J'ai aussi fait en sorte que mon dossier de ressources est à la racine du dossier du projet, et est inclus dans un dossier source dans le projet eclipse. J'ai aussi fait en sorte que System.getProperty("user.dir")
pointe vers l'emplacement correct. J'ai également essayé d'utiliser getResource() au lieu de getResourceAsStream(), mais ça ne fonctionne toujours pas.
resources
dossier est marqué comme un dossier source dans Eclipse, vous ne devriez pas être, y compris la /resources
partie de l'emplacement du Fichier ci-dessus. Au lieu de cela, le resources
dossier serait la "racine" et vous devriez juste être capable de faire "/" + imgName
.Juste mettre mon expérience personnelle. J'enquêtais sur un problème similaire, pour une heure, quand j'ai remarqué que mon <fichier>.jpg dans des ressources a commencé avec une lettre capitale, alors que j'avais défini le chemin de <fichier>.jpg, en commençant avec des minuscules. Donc, capitaine évident d'alerte, mais encore - méfiez-vous des noms de fichier 🙂 Bonne chance.
Cette réponse est la solution quand j'ai eu ce même message d'erreur.
OriginalL'auteur tyler | 2013-03-15
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser ceci:-
où
res
dossier est présent au même niveau que votresrc
dossier. Aussi, si vous remarquez, la barre oblique/
avant lares
nom du dossier a été retiré.vérifiez si votre fichier image est null ou pas.
Je vous remercie beaucoup, beaucoup de frustration évité de Justesse......
a fonctionné pour moi!! Merci!!
Thnaks ...a fonctionné pour moi!!
OriginalL'auteur SudoRahul
Le chemin passé en argument à getResourceAsStream() doit être relative à la variable classpath ensemble.
Donc, essayez de changer ce
à
essayez de vérifier pour imgName la valeur null.
J'ai tout vérifié pour les nuls avec des instructions d'impression, déjà. Rien ne revient à la valeur null ou n'importe quoi d'inattendu, sauf pour les
this.getClass().getResourceAsStream("/resources/" + imgName)
déclaration.Vérifiez le classpath de votre projet.Il devrait avoir le dossier de ressources. Si ne pas l'ajouter à votre classpath et utiliser le chemin relatif.
Le dossier de ressources est et a toujours été dans mon classpath. C'est vraiment frustrant...
OriginalL'auteur Kishore
J'ai eu exactement le même problème. J'ai utilisé le chemin d'accès "my_image.png" au premier abord, mais il ne marchait pas, alors j'ai cherché partout et j'ai essayé l'autre des solutions posté sur ce site, mais aucun d'entre eux travaillaient. J'ai résolu le mien en modifiant mon code à partir de ce
à ce
J'espère que cette aide, même si cette question a été posté il y a 5 ans.
OriginalL'auteur Sudo Nim
Cela peut venir comme une "Non, Duh!" pour beaucoup sur ce site, mais il est toujours important de remarquer à quel point littérale de Java est. La casse est essentielle, surtout si vous .jar un fichier.
Si votre programme fonctionne très bien avec compilation puis de l'exécution mais, soudain, devient de ce problème lorsque vous .bocal de vos fichiers. Assurez-vous de vérifier que vous Cas sur vos dossiers /fichiers et vos références dans votre code. (Ainsi que assurez-vous qu'ils sont dans votre .jar)
Espère que cela aide quelqu'un qui se termine ici en regardant le même problème.
OriginalL'auteur Carlson
Essayez ceci:
OriginalL'auteur PSR
Vous pouvez essayer ceci:
OriginalL'auteur Sarath Kumar Sivan
Essayer d'utiliser d'
OriginalL'auteur user1441664
Est le dossier de ressources d'un dossier de classe dans eclipse? Clic droit sur le projet -> Propriétés -> Java Build Path -> Bibliothèques -> Ajouter un Dossier de Classe... -> (sélectionnez le dossier res) et l'ajouter à un dossier de classe.
OriginalL'auteur elanthendral elangeeran
Essayer Cette
OriginalL'auteur Fito