Dies ist eine Frage, die auf dieser Seite schon 100 mal gestellt wurde, aber ich habe sie alle angeschaut und obwohl sie alle gelöst wurden, funktionierte keine der Lösungen für mich .java.lang.IllegalArgumentException: input == null! bei der Verwendung von ImageIO.read, um Bild als gepufferte Bild zu laden
Hier ist, was mein Code wie folgt aussieht:
public Button1(Client client, String imgName) {
this.client = client;
try {
this.icon = ImageIO.read(this.getClass().getResourceAsStream("/resources/" + imgName));
} catch (IOException e) {
e.printStackTrace();
}
Wenn der Code läuft es in der folgenden Fehler führt:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
Der String ImgName an den Konstruktor von einem Kind-Klasse übergeben wird und der Name eines Bildes (zB image.png). Ich habe auch sichergestellt, dass mein Ressourcen-Ordner im Stammverzeichnis des Projektordners ist und als Quellordner im Eclipse-Projekt enthalten ist. Ich habe auch dafür gesorgt, dass System.getProperty("user.dir")
auf den richtigen Ort zeigt. Ich habe auch getResource() anstelle von getResourceAsStream() versucht, aber es funktioniert immer noch nicht.
Wenn der Ordner 'resources' in Eclipse tatsächlich als Quellordner markiert ist, sollten Sie normalerweise den Abschnitt'/resources' in der Dateiposition oben nicht einschließen. Stattdessen wäre der Ordner "Ressourcen" der "root" und Sie sollten einfach "" und "imgName" tun können. –
Ich habe nur meine persönlichen Erfahrungen gemacht. Ich untersuchte ein ähnliches Problem für eine Stunde, als ich bemerkte, dass meine.jpg in Ressourcen mit einem Großbuchstaben begann, während ich Pfad zu .jpg definiert hatte, beginnend mit Kleinbuchstaben. Also Captain offensichtliche Warnung, aber immer noch - hüte dich vor den Dateinamen :) Viel Glück. –
Alex
[Diese Antwort] (http://stackoverflow.com/a/17753326/731314) war die Lösung, als ich denselben Fehler bekam. – Gary