Pfad zu einem gif-Bild wird zur Laufzeit nicht gefunden

Status
Nicht offen für weitere Antworten.
Hallo,

ich habe ein Problem damit den richtigen Pfad zu einem Bild anzugeben.

Ich habe 3 Projekte.
Projekt 1 ist das zu startende Programm. (RCP-Plugin)
Projekt 2 ist das Projekt, welches Projekt1 testet (junit)
Projekt 3 ist ein Projekt, welches anhand der Testergebnisse ein PDF baut.

In Projekt 3 habe ich einen Ordner images, in welchem gif-Dateien liegen auf die ich zur laufzeit zugreifen möchte. das Probnlem ist aber das er zur Laufzeit die einzelnen gif Dateien nicht findet, da er den image-Ordner im Projektordner von Projekt2 also dem testprojekt sucht.

Java:
iconOk =image.getInstance(this.getClass().getResource("images/small_icon_ok.gif"));

Außerdem funktioniert auch die Angabe anhand der ressource irgendwie nicht, da bekomme ich immer eine NullPointerException.

Java:
iconOk = Image.getInstance("images/small_icon_ok.gif");

Was muss ich ändern das das ganze funktioniert, also das Bild zur laufzeit gefunden wird, und das ganze später auch funktioniert wenn ich aus projekt 3 ein jar-File gemacht habe.
 

lumo

Top Contributor
dein problem wird daran liegen dass this.getClass() immer den pfad zur .class file der klasse liefert...
also wenn du verschiedene klassen in verschiedenen packages hast, wirst du unterschiedliche pfade(tiefen) bekommen...

du müsstest das getClass immer aus deiner hauptklasse aufrufen (die im obersten verzeichnis liegt, unter dem das images liegt...)

lass dir erstmal den pfad ausgeben wo deine class files liegen (by code)
und dann wird dir das problem in die augen springen...
 
hallo,

danke für die Antwort.
Also ich lade mir die Bilder ja nur in einer Klasse. In der in der ich das pdf generiere. In den anderen Klassen rufe ich nur Methoden auf um die generierung zu starten, stoppen oder was hinzuzufügen.

wenn ich mir mittels folgendem Code den Pfad das klasse ausgeben lasse.
Java:
System.out.println(this.getClass().toString());
erhalte ich den Packagename und die Klasse, wie komme ich an den Pfad der Klasse?

Habe es jetzt auch schon durch die Angabe der konkreten Klasse versucht aber auch das liefert null für die URL
Java:
URL urlOK = Pdfgenerator.class.getClassLoader().getResource("images/small_icon_ok.gif");

Wie kann ich den Pfad zur Klasse vom projektordner aus relativ angeben. Also das der Projektname mit enthalten ist, obwohl das funktioniert dann später von der jar aus nicht mehr oder?
 

lumo

Top Contributor
Code:
public class Xcwd {

    public static String getCwd(Object aParent) {
        String cwd = aParent.getClass().getProtectionDomain().getCodeSource().getLocation().toString();
        // if you run this from jar...
        if (cwd.endsWith(".jar")){
        	cwd = cwd.substring(0,cwd.lastIndexOf("/")+1);
        }
        return cwd.substring("file:/".length());
    }
    
    public static String getDrive(Object aParent) {
    	return getCwd(aParent).substring(0,2);
    }
}

damit kannst du aus deiner hauptklasse den root holen und dann per string replace bei den anderen klassen einfach mit einem leerstring ersetzen -> hast du den root entfernt und hast deinen relativen pfad.
 
Also wenn ich das ganze innerhalb von eclipse ausgeführt habe, ging es mit dem leicht abgewandelten Code von lumo prima. Allerdings habe ich Probleme wenn ich das ganze in eine jar packe, und so ausführe.

Die jar ist in ein anderes Projekt in libs reinkopiert und als Abhängigkeit angegeben.

Hier meine leicht abgewandelte Form.

Java:
public class XCwd {

	public static String getCwd(Object aParent) {
        String cwd = aParent.getClass().getProtectionDomain().getCodeSource().getLocation().toString();
        // if you run this from jar...
        if (cwd.endsWith(".jar")){
        	//cwd = cwd.substring(0,cwd.lastIndexOf("/")+1);  //funktioniert auskommentiert und nichtauskommentiert nicht
        }
        return cwd.substring("file:/".length());
    }
    
    public static String getDrive(Object aParent) {
    	return getCwd(aParent).substring(0,2);
    }
    
    public static String getImagePath(Object aParent)
    {
    	String imageFolder = "/images/";
    	String classFolder = "/bin/";
    	String path = getCwd(aParent).replace(classFolder, "");    	    	
    	String imagePath = path+=imageFolder;
    	return imagePath;
    }    
}

java.io.FileNotFoundException: C:\eclipse4test\testWS\de.test.junit\lib\pdfgenerate.jar\images\small_icon_ok.gif (Das System kann den angegebenen Pfad nicht finden)

Dieser Fehler kommt wenn ich die markierte Zeile auskommentiere. Kommentiere ich sie nicht aus, fällt die jar aus dem Imagepfad raus und er findet sie auch nicht.

In der jar Datei ist das Bild aber im Ordner images enthalten.

Was muss ich ändern, und wie komme ich an die Bilder aus dem jar-file
 

lumo

Top Contributor
kannst du mal die verzeichnisstruktur ab deinem projekt angeben?

err... willst du die bilder AUS dem jar file laden (bilder sind IM file) oder aus dem jar (deine class ist im jar) aber die bilder in einem unterordner im fs?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Wie gebe ich den Pfad zu einer Datei an, die in einem Ordner in Eclipse ist? Java Basics - Anfänger-Themen 1
S Längster Pfad zwischen zwei Vertices in einem Graph Java Basics - Anfänger-Themen 3
L Breadth-First Search statt einem Pfad, alle Pfade herausfinden Java Basics - Anfänger-Themen 4
topi relativer Pfad in einem Runnable JAR file Java Basics - Anfänger-Themen 12
A Relativer Pfad zu einem File ermitteln Java Basics - Anfänger-Themen 2
C Problem mit einem Pfad Java Basics - Anfänger-Themen 3
L von einem file dessen pfad ermitteln? Java Basics - Anfänger-Themen 9
W Dotenv relativer vs absoluter Pfad Java Basics - Anfänger-Themen 2
J Pfad zerlegen Java Basics - Anfänger-Themen 2
C Pfad zu Properties-File bei ResourceBundle Java Basics - Anfänger-Themen 7
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
P Möglichen Pfad überprüfen Java Basics - Anfänger-Themen 5
M Java GUI explorer aufrufen um Pfad zu bekommen Java Basics - Anfänger-Themen 3
R FXMLLoader Pfad falsch`? Java Basics - Anfänger-Themen 4
S Alternativer Pfad Java Basics - Anfänger-Themen 5
R speicherort Mac pfad angeben Java Basics - Anfänger-Themen 3
O Best Practice Datei-Pfad zerlegen Java Basics - Anfänger-Themen 4
H pfad finden Java Basics - Anfänger-Themen 12
H Pfad Program Files\Common Files\Oracle\Java\javapath Java Basics - Anfänger-Themen 3
L Pfad zum Jar Java Basics - Anfänger-Themen 7
it_is_all Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad Java Basics - Anfänger-Themen 8
J Leerzeichen im Pfad automatisch erkennen Java Basics - Anfänger-Themen 30
B Log4J Pfad des Logfiles definieren Java Basics - Anfänger-Themen 6
D Umgebungsvariable Pfad javaw.exe für Programmstart auf Windows Java Basics - Anfänger-Themen 1
D Pfad Java Basics - Anfänger-Themen 15
H nio Pfad aus Dateinamen extrahieren Java Basics - Anfänger-Themen 4
R Pfad angeben Java Basics - Anfänger-Themen 7
S Pfad für Dateisystem?? Java Basics - Anfänger-Themen 13
P JSON-Konfigurationsdatei verwenden: Probleme mit Pfad Java Basics - Anfänger-Themen 1
T Classpath Problem mit dem auslesen von Text-Dateien (Pfad) Java Basics - Anfänger-Themen 3
M Pfad zu einer Datei in einer exportierten Jar-Datei Java Basics - Anfänger-Themen 5
S ungültiger Pfad bei der Installation von API documentation Java Basics - Anfänger-Themen 0
N .propertiesdatei über Relativen Pfad einlesen lassen Java Basics - Anfänger-Themen 5
I ZIP Archive erstellen - ich möchte aber nur den jeweiligen Ordner zippen, bekomme ganzen Pfad Java Basics - Anfänger-Themen 1
I Bei Umlauten und Leerzeichen im Pfad, wird Datei nicht gefunden Java Basics - Anfänger-Themen 5
O JFileChooser Verhalten -Pfad Java Basics - Anfänger-Themen 15
V java Pfad javac Java Basics - Anfänger-Themen 8
D Ein Icon ohne Pfad sondern mit Package. Java Basics - Anfänger-Themen 4
P Leerzeichen in Pfad... Java Basics - Anfänger-Themen 17
P Datei auf Pfad speichern Java Basics - Anfänger-Themen 7
B Relativer Pfad zwischen zwei Files Java Basics - Anfänger-Themen 2
H Programm zur Ausgabe von Datei und Pfad Java Basics - Anfänger-Themen 7
C Pfad für Bilder angeben Java Basics - Anfänger-Themen 11
L Pfad "zuschneiden" Java Basics - Anfänger-Themen 3
B In welchem (Default) Pfad erstellt Java Dateien? Java Basics - Anfänger-Themen 4
V relativer Pfad geht nicht, absolut schon? Java Basics - Anfänger-Themen 3
J Input/Output Datei auslesen, Pfad eingeben Java Basics - Anfänger-Themen 4
S PATH und Pfad auslesen.... Java Basics - Anfänger-Themen 3
X JDK installieren Pfad wird nicht gefunden Java Basics - Anfänger-Themen 5
B Classpath cmd java mit absolutem Pfad Java Basics - Anfänger-Themen 15
B eingene Klasse in eigenem Prozess starten mit relativem Pfad Java Basics - Anfänger-Themen 5
J FileOutputStream aktuelle Speicher Pfad ausgeben Java Basics - Anfänger-Themen 13
T Erkennen ob ein Pfad lokal oder im Netzwerk ist Java Basics - Anfänger-Themen 13
F Zugriff auf Pfad des gerade ausgeführten Programms? Java Basics - Anfänger-Themen 14
S Pfad auslesen Java Basics - Anfänger-Themen 3
B Externe Libraries fuer Applet ... Pfad eingeben? Java Basics - Anfänger-Themen 23
Helgon Pfad richtig angeben Java Basics - Anfänger-Themen 7
E Input/Output Relativer Bild-Pfad für InputStream Java Basics - Anfänger-Themen 5
M Existiert der gegebene Pfad? Java Basics - Anfänger-Themen 5
G aktueller Pfad Java Basics - Anfänger-Themen 4
F Relativer Pfad auf Datei im Projektordner Java Basics - Anfänger-Themen 11
B Pfad einer .jar im Programm ermitteln Java Basics - Anfänger-Themen 13
T Pfad für Datei neben Jar Java Basics - Anfänger-Themen 9
S File Kopieren Path Pfad Problem Java Basics - Anfänger-Themen 3
I Java-Programmm starten/ Pfad hsql DB Java Basics - Anfänger-Themen 7
D Input/Output Pfad richtig ermitteln Java Basics - Anfänger-Themen 12
T Pfad gültig oder ungültig? Java Basics - Anfänger-Themen 17
T brauche den pfad Name! Java Basics - Anfänger-Themen 2
Z css pfad falsch Java Basics - Anfänger-Themen 7
P ImageIcon/Pfad Java Basics - Anfänger-Themen 3
M externen Pfad in Jar verwenden Java Basics - Anfänger-Themen 3
V pfad.exists() gilt nicht für "//server/a/xyz.jpg"? Java Basics - Anfänger-Themen 12
C Relativer Pfad - Statische Methode Java Basics - Anfänger-Themen 6
C exec Aufruf mit Leerzeilen im Pfad Java Basics - Anfänger-Themen 3
J Pfad bzw. Namen einer Datei auslesen Java Basics - Anfänger-Themen 6
D Pfad zu "Eigenen Dateien" ermitteln Java Basics - Anfänger-Themen 8
M createImage ungültiger Pfad registrieren Java Basics - Anfänger-Themen 2
S Pfad für Datei falsch - wie richtig angeben? Java Basics - Anfänger-Themen 7
H Wie Projekt-Ordner-Pfad ermitteln? Java Basics - Anfänger-Themen 11
A Aktueller Pfad des Programms (.jar) ermitteln Java Basics - Anfänger-Themen 10
M Problem mit relativen Pfad unter Linux Java Basics - Anfänger-Themen 5
L relativer Pfad Java Basics - Anfänger-Themen 2
S In Eclipse relativen Pfad fuer Tomcat Server erstellen..? Java Basics - Anfänger-Themen 3
megachucky FileInputStream findet nur absoluten Pfad, keinen Relativen ?! Java Basics - Anfänger-Themen 7
M Pfad angabe bei getRescource und ImageIO.write Java Basics - Anfänger-Themen 4
E new File macht den Pfad kaputt Java Basics - Anfänger-Themen 15
0 Den Pfad für das Bild angeben Java Basics - Anfänger-Themen 9
D Pfad zum Konfigurationsfile von Servletanwendung "dynamisieren" Java Basics - Anfänger-Themen 27
H Wie mache ich aus pfad\\unterpfad pfad\unterpfad? Java Basics - Anfänger-Themen 3
L datei speichern untervorgegebenen pfad Java Basics - Anfänger-Themen 3
A relativer Pfad Java Basics - Anfänger-Themen 6
R Properties über statischen Pfad laden Java Basics - Anfänger-Themen 2
L Pfad von Webprojekt auslesen Java Basics - Anfänger-Themen 10
F Datei suchen --> Pfad als String speichern Java Basics - Anfänger-Themen 8
R Pfad relativ eingeben Java Basics - Anfänger-Themen 20
Z Pfad zum Jararchiv Java Basics - Anfänger-Themen 4
S Object Pfad Java Basics - Anfänger-Themen 3
S log4j pfad per umgebungsvariable setzen? Java Basics - Anfänger-Themen 2
G Mit jFileChooser Pfad rauskriegen? Java Basics - Anfänger-Themen 3
G Pfad einer Klasse Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben