Ich versuche, ein Bild aus dem Ordner src/ in einem Paket abzurufen, aber ich habe keinen Erfolg.
nekoPics[i] = tk.getImage(getClass().getResource(String.format("resources/pracs/neko/%s", nekosrc[i])));
Hat jemand einen Vorschlag?
Ich versuche, ein Bild aus dem Ordner src/ in einem Paket abzurufen, aber ich habe keinen Erfolg.
nekoPics[i] = tk.getImage(getClass().getResource(String.format("resources/pracs/neko/%s", nekosrc[i])));
Hat jemand einen Vorschlag?
Wird er in den Bereich kopiert, in dem Ihr Code erstellt wird? Ist es in der src
Verzeichnis hilft nicht, wenn sich die Klasse zur Ausführungszeit in einem bin
Verzeichnis (oder eine jar-Datei).
Beachten Sie auch, dass, wenn Ihre Klasse in einem Paket ist, dann Class.getResource
wird standardmäßig relativ zu diesem Paket funktionieren. Wenn Ihr Paket also foo.bar ist, wird es nach foo/bar/resources/pracs/neko/whatever
. Wenn Sie es absolut machen wollen, können Sie entweder ClassLoader.getResource
oder setzen Sie ein führendes /
am Anfang der Zeichenkette:
String resource = String.format("/resources/pracs/neko/%s", nekosrc[i]);
nekoPics[i] = tk.getImage(getClass().getResource(resource));
o
String resource = String.format("resources/pracs/neko/%s", nekosrc[i]);
nekoPics[i] = tk.getImage(getClass().getClassLoader().getResource(resource));
Natürlich, wenn die reousrces
Verzeichnis ist eigentlich relativ zu Ihrem Paket, sollten Sie das nicht tun :)
Wenn Sie getClass().getResource()
mit einem relativen Pfad (d. h. einem Pfad, der nicht mit /
), wird der Pfad wie folgt interpretiert bezogen auf das Paket der Klasse die Sie zum Laden der Ressource verwenden.
Wenn Sie also diesen Code in der Klasse mypackage.MyClass
und fordert dann an resources/pracs/neko/something
wird tatsächlich versuchen zu finden mypackage/resources/pracs/neko/something
relativ zu Ihrem Klassenpfad.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.