Problem beim Serialisieren, wenn Programm per Doppelklick gestartet wird

jimb0p

Erfahrenes Mitglied
Hallo Zusammen,

ich habe folgendes Problem: Wenn ich meine Anwendung (Ausführbare .jar) per Doppelklick starte wird mein Objekt nicht serialisiert und das Programm hängt sich auf. Gehe ich jedoch mit cmd in das Verzeichnis wo die .jar liegt und starte es über "java -jar ..." klappt die Serialisierung fehlerfrei und das Programm läuft weiter. Kommentiere ich die Serialisieren-Funktion aus läuft das Programm auch fehlerfrei per Doppelklick, also gehe ich stark davon aus das irgendwo in dieser Funktion der Fehler liegen muss. Leider kann ich auch nur die Funktion posten. Wenn jemand einen Fehler sieht oder mir sagen kann woran es liegen kann wäre super! Generell freue ich mich über jeden Verbesserungsvorschlag!

Java:
public static void serializeObject(Object o, String file, boolean InfoNeeded){
		ObjectOutputStream oos = null;
		try {
			File crFile = new File(file);
			oos = new ObjectOutputStream(new FileOutputStream(crFile));
			oos.writeObject(o);
			oos.flush();
			oos.close();
			if(InfoNeeded == true){
				infoMessage("Erfolgreich gespeichert");
			}
		} catch (FileNotFoundException e) {
			errorMessage("Konnte Datei zum Speichern der Einstellungen nicht finden");
			try {
				oos.close();
			} catch (IOException e1) {
				errorMessage("Problem beim Schließen des Outputstreams");
				e1.printStackTrace();
			}
		} catch (IOException e) {
			errorMessage("Problem mit dem Ausgabestrom beim Speichern der Einstellungen");
			try {
				oos.close();
			} catch (IOException e1) {
				errorMessage("Problem beim Schließen des Outputstreams");
				e1.printStackTrace();
			}
		}
	}
 
Zuletzt bearbeitet:
hi Marco,
ich kann da erstmal nur Dir eine Arbeitshypothese geben.
Serialisieren heißt ja in ein persistentes Medium bringen. In Deinem Fall ist es ganz offenbar eine Datei.
Da ich vermute, dass der Unterschied in der Bedienung vielleicht daran liegt dass der Pfad der zu schreibenden Datei vielleicht unteschiedlich ist ... ich denke da an relativen Pfad vor allem zum aktuellen Verzeichnis. Zur Überprüfung dieser Hypothese würde ich Dir vorschlagen mal so was wie ein Log rauszuschreiben, in dem Du den Pfad der Zieldatei für die Serialisierung ausgeben lässt.

Vielleicht hilft der Gedanke Dir weiter

Takidoso
 
Zurück