properties und image Dateien aus jar einlesen

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

Guest

Gast
Hello

unter eclipse habe ich ein Projekt erstellt, das die folgende Dateistruktur hat
Code:
src
    test
     	 ImageTest.java
         image.gif
         list.properties
In der Klasse ImageTest wird image datei mit dem folgenden Code eingelesen

Code:
// aus SWT Bibliotheken
Image image = new Image(Display.getCurrent(), ImageTest.class.getResourceAsStream("image.gif"));

Wenn ich das Program unter Eclipse ausführe, funktioniert es so wie es sein sollte.
Aber wenn ich eine jar Datei erstelle und ausführe, wird eine Exception geworfen und das Eingabeaufforderun-Fenster sofort geschlossen. So, kann ich nicht sagen, um was für eine Exception es geht.

Meine Fragen sind:
1) Wie kann ich verhindern, dass das Fenster geschlossen wird ?
2) Wie sollte ich ein jar Datei erstellen, die auch image und properties Dateien enthält ?
3) Wie sollte ich in meinem Code auf diese Dateien zugreifen ?

Bitte sagt nicht, dass ich im Forum nach jar, image, properties, getResourceAsStream, ... usw suchen soll.
Da habe ich jede Menge Thread gefunden aber keine Antwort.
Auch in FAQ wird nur beschrieben, wie man eine jar Datei erstellt.

Vielen Dank.
 
Habe zur Zeit ein aehnliches Problem das sicherlich nicht gross ist, aber zu dem ich aus Zeitgruenden auch noch keien Loesung gefunden habe.

Das mit den Fenster und schliessen kannst du unter anderem verhindern, wenn du in deiner batch-Datei eine Zeile dranhaengst: PAUSE oder manuell die Eingabeaufforderung ueber das Startmenue aufrufst und mit cd in den Ordner wechelst und dein Programm mit java package.MainClass startest

Erstell das Jar am Besten mit Eclipse, da kann man die noetigen Ressourcen gleich mit reinpacken lassen.

Eigentlich ist der Code richtig, bei mir hat er 2 oder 3 Wochen gut funktioniert, aber jetzt, vor 3 Tagen wollte er bei mir auch nicht mehr, weiss der geier warum, seit ich Java6 draufhatte, habs wieder gekillt, aber geht trotzdem noch nicht wieder.
 
Moin nochmal,


also ich kann das Problem nicht finden, es hat mal funktioniert, aber jetzt geht es nur noch, wenn man aus Eclipse heraus testet, also keine jar hat. Wenn man java MainClass aufruft aus dem entsprechenden Ordner geht es natuerlich auch, aber sobald das in einer jar ist, krieg ich nur noch null als Pfad der Ressource:

Code:
			System.out.println(Info.class.getClassLoader().getResource("HistoryOfChanges.txt"));
			in = new BufferedReader(new InputStreamReader(Info.class.getClassLoader().getResourceAsStream("HistoryOfChanges.txt")));

Das Problem ist ja, dass es getResource(AsStream)("") so einfach auch nicht tut, da die Klasse, aus der das aufgerufen wird in unterpackages liegt, die Datei aber auf oberster Ebene liegt.
Die Struktur behalte ich im jar bei und er findet es trotzdem nicht(weder die Datei ausserhalb des Jar, noch innerhalb).

Waere nett, wenn mir jemannd sagen koennte, was ich falsch mache.

MfG
MPW

PS.: Ich verwende noch einen URLCLassloader um PlugIns zu laden, aber das duerfte sich doch nicht behinder oder? Die Klasse aus der das augerufen wird, ist kein PlugIn.
 
Ich weiß nicht ob ich das Problem richtig verstanden habe, aber
warum verwendest du nicht eine Klasse, die mit dem Datei auf derselben Ebene liegt?
oder warum gibst du nicht einfach den relativen Path zu der Datei?

Code:
in = new BufferedReader(new InputStreamReader(ClassFromSamePackage.class.getResourceAsStream("HistoryOfChanges.txt")));
oder
Code:
in = new BufferedReader(new InputStreamReader(Info.class.getResourceAsStream("/../../HistoryOfChanges.txt")));
 
Hm, danke fuer deine Idee, aber in diesem Fall klappt das nicht, da es keine Klasse in diesem Projekt gibt, die auf der obersten Ebene liegt... und das komische ist ja, das die getResourceAsStream auch irgendwie nicht geht...
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben