Falscher Pfad beim Laden eines Bildes

Status
Nicht offen für weitere Antworten.

Krabat

Bekanntes Mitglied
Hallo,

ich habe PRobleme den richtigen Pfad anzugeben, um das Bild laden zu können. Kann mir da jemand helfen, wie ich einen relativen Pfad angeben kann zu meinem Beispiel?

Code:
       public BufferedImage loadImage(String name) {
		URL url=null;
		try {
			url= getClass().getClassLoader().getResource(name);
			return ImageIO.read(url);
		}
		catch(Exception e) {
			System.out.println("Image cannot be loaded " + name +" from "+url);
			System.out.println("Error : "+e.getClass().getName()+" "+e.getMessage());
			System.exit(0);
			return null;
		}
	}
	
	

	public void paint(Graphics g) {
		BufferedImage bicho = loadImage("res/bicho.gif");
		g.drawImage(bicho, 40, 40, this);
	}


Ich benutze Eclipse mit seperaten src und bin Verzeichnissen. Die Sourcen liegen unter: "F:\java\projects\invaders\src\version01\..."
Die Bilddatei unter "F:\java\projects\invaders\res\bicho.gif"
 
B

Beni

Gast
Angenommen dein Progi sitzt in "F:\java\projects\invaders\", dann schreibst du nur den Rest: "res\bicho.gif"
 

Krabat

Bekanntes Mitglied
dachte auch, es müßte so funktionieren, aber irgendwie findet er es nicht. Es funzt nur, wenn ich den Ordner "res" in das "bin"-Verzeichnis schiebe...

Komisch, oder?

Meine Verzeichnisstruktur sieht normalerweise folgendermaßen aus:
Code:
F:
|
+--- java
      |
      +--- projects
            |
            +--- invaders
                  |
                  +--- src
                  |     |
                  |     +--- version01 (paketname)
                  |            |
                  |            +--- Invaders.java
                  |
                  +--- bin
                  +--- res
                        +--- bicho.gif
 
B

Beni

Gast
Nun ja, die class-Dateien liegen (normalerweise) im "bin"-Verzeichnis, also läuft auch dein Programm in "bin" (zumindest wenn niemand an ClassPahtes und etc... herumgefummelt hat :wink: )
 

Kaan

Bekanntes Mitglied
Vielleicht liegt es daran, dass "\" ein Steuerzeichen in Java ist und man daher immer "\\" schreiben muss. Also z.B. "bilder\\grafiken\\bild1.jpg".
 
B

Beni

Gast
Gute Idee Kaan. Anstelle von "\\" verwendet man aber besser "File.separator", das funktioniert dann auf jedem OS.
 

Krabat

Bekanntes Mitglied
Das mit dem File.separator ist eine gute Idee, ich habs eingebaut, nun müßte ich nur noch ein Verzeichnis höher und dann müßte der Pfad stimmen, habe jetzt folgendes:

Code:
        public BufferedImage loadImage(String name) {
		URL url=null;
		try {
			url= getClass().getClassLoader().getResource(name);
			System.out.println("Alles gut!");
			return ImageIO.read(url);
		}
		catch(Exception e) {
			System.err.println("ERROR!");
			System.out.println("Image cannot be loaded " + name +" from "+url);
			System.out.println("Error : "+e.getClass().getName()+" "+e.getMessage());
			System.exit(0);
			return null;
		}
	}
	
	
	
	public void paint(Graphics g) {
		if (bicho==null) {
			bicho = loadImage(".."+File.separator+"res"+File.separator+"bicho.gif");
		}
		
		g.drawImage(bicho, 40, 40, this);
	}


Neu ist eigentlich nur Zeile 22...
Komme ich so ein Verzeichnis höher? (also aus dem bin Verzeichnis heraus)
... oder um es klarer zu sagen: so komme ich leider nicht ein Verzeichnis höher. Ist es ein Problem, daß eine URL benutzt wird und die kein Verzeichnis höher versteht?
 

Kaan

Bekanntes Mitglied
Wart, ich komme jetzt nicht ganz mit...
Code:
F:
|
+--- java
      |
      +--- projects
            |
            +--- invaders
                  |
                  +--- src
                  |     |
                  |     +--- version01 (paketname)
                  |            |
                  |            +--- Invaders.java
                  |
                  +--- bin
                  +--- res
                        +--- bicho.gif

Dein Bild befindet sich im Ordner res. Wo befindet sich die Java-Klasse, aus der du das Bild "bicho.gif" laden möchtest?
 

Krabat

Bekanntes Mitglied
Code:
 F:
|
+--- java
      |
      +--- projects
            |
            +--- invaders
                  |
                  +--- src
                  |     |
                  |     +--- version01 (paketname)
                  |            |
                  |            +--- Invaders.java
                  |
                  +--- bin
                  |     |
                  |     +--- version01 (paketname)
                  |            |
                  |            +--- Invaders.class
                  |
                  +--- res
                        +--- bicho.gif


Die ausführende Klasse/Datei ist die "Invaders.class" im Verzeichnis "F:\java\projects\invaders\bin\version01\"
 

Kaan

Bekanntes Mitglied
Hmm, ich hab gerade in meiner Bibel nachgeschlagen und vielleicht helfen dir die File Methoden getAbsolutePath oder getParent weiter. Mit getParent bekommst du das Oberverzeichnis als String zurück.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Classpath Falscher Pfad? o.O Allgemeine Java-Themen 2
J Bilder halb in falscher Farbe nach kopieren aus Web Allgemeine Java-Themen 3
M Methoden werden in falscher Reihenfolge bearbeitet Allgemeine Java-Themen 10
P HTTP Falscher Code per url.openStream() Allgemeine Java-Themen 4
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
izoards Java Home Pfad unabhängig von der Version Allgemeine Java-Themen 7
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
G Datei aus Ordner wählen, ohne den Dateinamen im Pfad angeben zu müssen Allgemeine Java-Themen 4
N relativier Pfad für sqlite-Datenbank in Gradle/IntelliJ Allgemeine Java-Themen 2
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
S Pfad zu Ressourcen Allgemeine Java-Themen 17
T Probleme mit dem Pfad zum Propertie file Allgemeine Java-Themen 7
C FileOutputStream konkreter Pfad Allgemeine Java-Themen 3
J Datei löschen, die Leerzeichen im Pfad hat Allgemeine Java-Themen 5
L Classpath Relativer Pfad einer Resource? Allgemeine Java-Themen 9
sandaime CMD aufrufen und aktuellen pfad ändern Allgemeine Java-Themen 11
J .exe Dateien werden nicht gestartet obwohl Pfad richtig Allgemeine Java-Themen 6
C pfad vom Image ausgeben lassen Allgemeine Java-Themen 5
O log4j pfad per umgebungsvariable setzen Allgemeine Java-Themen 5
S Shell Commands mit absolutem Pfad ausführen Allgemeine Java-Themen 2
F LWJGL in keinem Java libary Pfad? Allgemeine Java-Themen 2
M FileInputStream relativer Pfad in .jar Allgemeine Java-Themen 2
D pfad zur jre linux Allgemeine Java-Themen 8
C Kompletter Pfad aus "input type=file" auslesen Allgemeine Java-Themen 3
M Input/Output Pfad mit Leerzeichen convertieren in Kurzschreibweise (~1, ~2, etc)? Allgemeine Java-Themen 10
C JAR, Pfad und Properties Allgemeine Java-Themen 17
P Pfad zu Dateien von "Tragbaren Gerät" Allgemeine Java-Themen 3
F Pfad der laufenden JAR ermitteln (mit Archivnamen) Allgemeine Java-Themen 2
U DLLs werden nicht gefunden trotz Pfad: Allgemeine Java-Themen 4
G log4j File erzeugen und Pfad bestimmen Allgemeine Java-Themen 3
A File Java Pfad Allgemeine Java-Themen 5
D JavaEE-WebApp Pfad auslesen Allgemeine Java-Themen 3
M Pfad in int[][] finden Allgemeine Java-Themen 4
J Java Pfad nicht mehr in Path Variablen??? Allgemeine Java-Themen 2
C Environment Variable in Pfad -> Datei öffnen Allgemeine Java-Themen 5
M Relativer Pfad oder Dateien in Jar Allgemeine Java-Themen 7
D Pfad aus Ressource-Datei auslesen Allgemeine Java-Themen 7
S FileInputStream aplication Pfad Allgemeine Java-Themen 4
H Datei speichern -> Pfad erstellen? Allgemeine Java-Themen 1
T Pfad Anwendungsdaten unter Windows ermitteln Allgemeine Java-Themen 3
H2SO3- jar soll eigenen namen(pfad) finden Allgemeine Java-Themen 12
W HTML-Pfad Allgemeine Java-Themen 4
M Batch ausführen mit Leerzeichen im Pfad Allgemeine Java-Themen 7
C Applet: JFileChooser: PFad an HTML zürückgeben Allgemeine Java-Themen 4
MQue ClassLoader Pfad ausgeben Allgemeine Java-Themen 6
T Pfad aus Dateilesen -> wie diesen Pfad verwenden! Allgemeine Java-Themen 13
A Jar-File - Pfad Allgemeine Java-Themen 3
-horn- Kürzester Pfad: Code so eine gute Idee? Allgemeine Java-Themen 7
H absoluter Pfad ins working Directory Allgemeine Java-Themen 17
GambaJo Pfad zum Userprofil abhängig vom OS (/home Dok&Einst. us Allgemeine Java-Themen 3
R Wo ist der Pfad zur "Java(TM) Platform SE" Allgemeine Java-Themen 7
R Pfad zu PDF bei iText in Webapps Allgemeine Java-Themen 4
P Pfad der gerade ausgeführten Jar-Datei auslesen Allgemeine Java-Themen 2
R Entfernen der '..' Notation aus dem Pfad Allgemeine Java-Themen 2
T Java Applet PDF erstellen mit iText, Probleme mit Pfad Allgemeine Java-Themen 1
MasterEvil File.createTempFile liefert nur kurzen Pfad mit Tilde Allgemeine Java-Themen 3
T Wie bekomme ich den Pfad ohne Dateiname? Allgemeine Java-Themen 2
MQue Pfad splitten Allgemeine Java-Themen 2
P Pfad schließen xml Allgemeine Java-Themen 3
M Absoluter Pfad. Allgemeine Java-Themen 6
H Pfad einer Sounddatei von Soundkarte auslesen Allgemeine Java-Themen 15
G Problem Pfad zu wechseln Allgemeine Java-Themen 28
J Erkennen aus welchem Pfad das Jar gestartet wurde Allgemeine Java-Themen 6
S relativer Pfad? Allgemeine Java-Themen 18
S Relativen Pfad zu Pfad für File finden Allgemeine Java-Themen 4
G Problem mit Leerzeichen im Pfad bei File und getResouce Allgemeine Java-Themen 2
S Relativer Pfad in jsp Allgemeine Java-Themen 6
D Pfad ausfindig machen? Allgemeine Java-Themen 2
E Pfad angeben Allgemeine Java-Themen 5
M Den Pfad ermitteln aus dem die .jar Datei gestartet wurde Allgemeine Java-Themen 2
G ganze Pfad in einer Ordnerstruktur abbilden Allgemeine Java-Themen 19
G FileOpenDialog Pfad anlegen? Allgemeine Java-Themen 2
E in Pfad suchen Allgemeine Java-Themen 5
Q || Wie speichert man Dateien wo der Pfad als Link(UNIX)... Allgemeine Java-Themen 11
S Pfad Verwaltung Allgemeine Java-Themen 3
M Pfad zur Klasse ermitteln Allgemeine Java-Themen 2
L Pfad von Daten auf Server über FileChooseDialog Allgemeine Java-Themen 5
G absoluter pfad aus relativem Allgemeine Java-Themen 5
G Root-Pfad in einer Webapplikation finden Allgemeine Java-Themen 7
D Windows Pfad in UNC Pfad wandeln Allgemeine Java-Themen 4
G jar archiv und native klassen (pfad angabe) Allgemeine Java-Themen 2
P Leerzeichen im Pfad Allgemeine Java-Themen 8
I Pfad in einem String ändern Allgemeine Java-Themen 5
D Pfad zu meiner anwendung? Allgemeine Java-Themen 13
B relativer Pfad Allgemeine Java-Themen 18
J Pfad problem Allgemeine Java-Themen 14
D Jar-Datei-Pfad Allgemeine Java-Themen 2
welterde Pfad zur Jar-Datei Allgemeine Java-Themen 7
S Runtime exec unter MacOS X will nicht "open pfad" Allgemeine Java-Themen 7
M TreePath aus einem Pfad? Allgemeine Java-Themen 4
G Servlets: Ganzer Pfad und Dateiname des verschickten Forms Allgemeine Java-Themen 15
G Wie komme ich an den Pfad zu meinem Programm? Allgemeine Java-Themen 2
thE_29 DOS pfad bekommen - die Tilde Allgemeine Java-Themen 1
A Pfad mit Leerzeichen über exec starten Allgemeine Java-Themen 6
G Relativer Pfad zu Pfad Allgemeine Java-Themen 2
H Pfad für [Ini/DB]-Datei Allgemeine Java-Themen 4
berserkerdq2 Weiß jemand wie ich im Scenebuilder das Fenster so darstellen kann, dass beim Vollbildmodus die Objekte so angezeigt werden? Allgemeine Java-Themen 1
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
B Mysteriöse Ergebnisse beim Baccarat Programm? Allgemeine Java-Themen 13
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben