Pfad konvertieren

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo Zusammen,

dank Eurer Hilfe läuft mein Prgramm jetzt schon ganz gut. Ich wollte jetzt noch eine jpg-Datei und eine PDF-Datei mit ins jar nehmen,
damit alle Dateien in einem jar sind. (Jetziger Status: jar + Bild + PDF in einem Verzeichnis.)

Nun muss ich die entsprechenden Codezeilen ja anpassen. Ich habe bereits einige Foreneinträge gefunden, bin aber nicht in der Lage
diese auf meinen Code umzuwandel bzw. ich bekomme immer Fehlermeldungen.

Die Lösung ist angeblich immer:
Code:
this.getClass().getClassLoader().getResource("dateiname");
Aber ich habe schon alles
mögliche versucht, einen solche Codeblock einzubauen, ohne Ertfolg. :-(

Hier mal der IST-Zustand:

Bild als Label:

Code:
Image img = null;
	
try {
	img = ImageIO.read(new File ("logo.jpg"));
} catch (IOException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}

JLabel BildLabel = new JLabel( new ImageIcon( img ));

PDF-Aufruf:

Code:
try {
	Runtime.getRuntime().exec("cmd /c Handbuch.pdf");
} catch (IOException e1) {
	JOptionPane.showMessageDialog( Hauptfenster.this , "Fehler beim Öffnen des Hilfedokumentes.");
}

Ich hoffe, ihr könnt mir helfen.

Danke
 
Reicht es denn. wenn ich meine Dateinamen mit dem this..-Konstrukt einfach austausche?

Gruß
 
Ich weiß, ich stell mich an, aber naja..... :roll:

Code:
Image img = null; 
    
try { 
   img = ImageIO.read(new File (this.getClass().getResource("Dateiname");
)); 
} catch (IOException e) { 
   // TODO Auto-generated catch block 
   e.printStackTrace(); 
} 

JLabel BildLabel = new JLabel( new ImageIcon( img ));

Die Datei liegt doch direkt im Projektordner von Eclipse, also auch direkt im jar.

Gruß
 
Also ich versuche das ganz natürlich erstmal aus Eclipse (also noch nicht im jar) zum Laufen zu bringen. Zur Zeit sieht das ganze ja so aus.

Projektname (Paketansicht)
|
|- src
|- JRE
|- externes jar
|- extermes jar
|- logo.jpg

und der Zugriff, wie bereits gepostet.

Code:
Image img = null; 
    
try { 
   img = ImageIO.read(new File ("logo.jpg")); 
} catch (IOException e) { 
   // TODO Auto-generated catch block 
   e.printStackTrace(); 
} 

JLabel BildLabel = new JLabel( new ImageIcon( img ));

Das klappt auch in Eclipse und als jar, sowie wenn jar und bilddatei in einem Verzeichnis liegen.

Muss ich den einen extra Ordner erstellen und dann die Bilddatei in diesen Ordner importieren?

Ein einfaches ersetzen von ("logo.jpg") durch (this.getClass().getResource("logo.jpg")) führt in Eclipse zu einem Fehler. Die Pfadgeschichte könnte ich vielleicht durch testen rausbekommen, aber die richige Implementierung, wird schwierig.

Danke für Dein Durchhalten...Ich bin ein schwieriger Fall.
 
Also ich versuche das ganz natürlich erstmal aus Eclipse (also noch nicht im jar) zum Laufen zu bringen. Zur Zeit sieht das ganze ja so aus.

Projektname (Paketansicht)
|
|- src
|- JRE
|- externes jar
|- extermes jar
|- logo.jpg

und der Zugriff, wie bereits gepostet.

Code:
Image img = null; 
    
try { 
   img = ImageIO.read(new File ("logo.jpg")); 
} catch (IOException e) { 
   // TODO Auto-generated catch block 
   e.printStackTrace(); 
} 

JLabel BildLabel = new JLabel( new ImageIcon( img ));

Das klappt auch in Eclipse und als jar, sowie wenn jar und bilddatei in einem Verzeichnis liegen.

Muss ich den einen extra Ordner erstellen und dann die Bilddatei in diesen Ordner importieren?

Ein einfaches ersetzen von ("logo.jpg") durch (this.getClass().getResource("logo.jpg")) führt in Eclipse zu einem Fehler. Die Pfadgeschichte könnte ich vielleicht durch testen rausbekommen, aber die richige Implementierung, wird schwierig.

Danke für Dein Durchhalten...Ich bin ein schwieriger Fall.
 
Wenn du deine JAR-Datei dann erstellst: Wo liegt dann das Bild?

Wenn es zum Beispiel in
/de/projekt/resources/logo.jpg
der jar-Datei liegt, muss der Resourcen-Pfad:
Code:
this.getClass().getClassLoader().getResource("/de/projekt/resources/logo.jpg");
lauten.
 
Also ich habe jetzt das Bild unter:

de/firmenname/resource
logo.jpg

die Klasse befindet sich unter

de/firmenname/konvertierung
test.java

Das Problem ist jetzt glaube ich die Einbindung des Konstruktes in den bestehen Code. (Das mit den Pfaden war sicherlich auch einer.

Code:
Image img = null;
	
try {
    img = ImageIO.read(new File (this.getClass().getClassLoader().getResource ("/de/hamburgersoftware/resource/logo.jpg")));
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
	
JLabel BildLabel = new JLabel( new ImageIcon( img ));

Eclipse zeigt hier bereits Fehler an. - No suggestion avaiable - Kann ich das wirklich so schreiben?

Ps.: Sorry für die Doppelpost, aber mein Rechner spinnt heute irgendwie.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben