Ich versuche, ein Bild aus einem Ordner mit dem Namen Benutzerdefiniert zu laden, in dem der Benutzer Bilder ablegt. Hier ist die Methode, die ich verwendet, um Bilder zu laden:Laden von Java-Bildern aus .jar-Datei
public BufferedImage getCustImg(String path){
BufferedImage img = null;
String s = get.getProgramPath();
path = path.trim();
String s2 = s + "\\Custom\\" + path + ".png";
try{
img = ImageIO.read(this.getClass().getResource(s2));//gets image from file path
} catch (IOException e) {
e.printStackTrace();
}
return img;
}
Hier ist der Programmpfad Methode
public String getProgramPath(){
File f = new File("./Resources/Sprtes/blank.png");
String s = f.getAbsolutePath();
String[] stringArr = s.split("Resources");
String s2 = stringArr[0];
s2 = s2.substring(0, s2.length() - 3);
return s2;
}
Wenn ich den Code funktioniert alles einwandfrei laufen, aber das Problem erscheint, wenn ich versuche, das Programm auszuführen, wie eine .jar-Datei. Wenn ich es mit einer JAR-Datei ausführe, wird das Bild nicht geladen. Dies ist, wo die benutzerdefinierten Ordner in Bezug auf die .jar-Datei ist:
Wie soll ich das Verfahren, um sicherzustellen, ändern, dass das funktioniert?
ändern java doc Bitte lesen für 'Class.getResource()'. –
Ich denke, dieser Beitrag könnte Ihre Frage beantworten. http://stackoverflow.com/questions/38167205/loading-images-in-the-exported-jar-file – Olithegoalie