Probleme beim Lesen mit readObject -> InvalidClassExcepti

Status
Nicht offen für weitere Antworten.
V

Veritas696

Gast
Hallo Javafriends,

ich habe folgendes Problem: Ich habe ein Programm geschrieben mit welchem ich ein Object per Serialisierung in einer Datei abspeichern will und bei einem Neustart des Programms wieder laden möchte.

Ich habe des Programme an einem Rechner geschrieben und wollte jetzt an einem anderen Rechner weiterentwickeln.

nun bekomme ich aber folgende Fehlermeldung wenn ich das Programm starte:


java.io.InvalidClassException: javax.swing.JComponent; local class incompatible: stream classdesc serialVersionUID = -2514362798440941654, local class serialVersionUID = -1030230214076481435
at java.io_ObjectStreamClass.initNonProxy(Unknown Source)
at java.io_ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io_ObjectInputStream.readClassDesc(Unknown Source)
at java.io_ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io_ObjectInputStream.readClassDesc(Unknown Source)
at java.io_ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io_ObjectInputStream.readClassDesc(Unknown Source)
at java.io_ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io_ObjectInputStream.readClassDesc(Unknown Source)
at java.io_ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io_ObjectInputStream.readObject0(Unknown Source)
at java.io_ObjectInputStream.defaultReadFields(Unknown Source)
at java.io_ObjectInputStream.readSerialData(Unknown Source)
at java.io_ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io_ObjectInputStream.readObject0(Unknown Source)
at java.io_ObjectInputStream.readArray(Unknown Source)
at java.io_ObjectInputStream.readObject0(Unknown Source)
at java.io_ObjectInputStream.defaultReadFields(Unknown Source)
at java.io_ObjectInputStream.readSerialData(Unknown Source)
at java.io_ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io_ObjectInputStream.readObject0(Unknown Source)
at java.io_ObjectInputStream.defaultReadFields(Unknown Source)
at java.io_ObjectInputStream.readSerialData(Unknown Source)
at java.io_ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io_ObjectInputStream.readObject0(Unknown Source)
at java.io_ObjectInputStream.defaultReadFields(Unknown Source)
at java.io_ObjectInputStream.readSerialData(Unknown Source)
at java.io_ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io_ObjectInputStream.readObject0(Unknown Source)
at java.io_ObjectInputStream.readArray(Unknown Source)
at java.io_ObjectInputStream.readObject0(Unknown Source)
at java.io_ObjectInputStream.defaultReadFields(Unknown Source)
at java.io_ObjectInputStream.readSerialData(Unknown Source)
at java.io_ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io_ObjectInputStream.readObject0(Unknown Source)
at java.io_ObjectInputStream.defaultReadFields(Unknown Source)
at java.io_ObjectInputStream.readSerialData(Unknown Source)
at java.io_ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io_ObjectInputStream.readObject0(Unknown Source)
at java.io_ObjectInputStream.readObject(Unknown Source)
at poker.database.DataBase.loadDataBase(DataBase.java:43)
at mainpack.StartUp.main(StartUp.java:54)



Wie kann ich die Daten aus der Datei auslesen ohne eine neue Datei anzulegen?

Wie gesagt ich hab nicht einmal was an den Dateien geändert: an dem einem Rechner gings und jetzt plötzlich nicht mehr :-(
 
V

Veritas696

Gast
So lesen ich das Objekt aus der Datei aus:
Code:
public void loadDataBase()
	{	
		Debugger.outln("DataBase DATEN LADEN !");
		FileInputStream fis = null;
		ObjectInputStream ois = null;
		try
		{
			fis = new FileInputStream("PokerDB.tmp");
			ois = new ObjectInputStream(fis);
			ProfileManager.setInstance((ProfileManager) ois.readObject());
			ois.close();
		} 
		catch (FileNotFoundException e)
		{
			MainFrame.getInstance().showInfoDialog("Noch keine Daten vorhanden", "BRManager");
			e.printStackTrace();
		}		
		catch (IOException e)
		{
			MainFrame.getInstance().showInfoDialog("IOException", "BRManager");
			e.printStackTrace();
		}
		catch (ClassNotFoundException e)
		{
			MainFrame.getInstance().showInfoDialog("ClassNotFoundException", "BRManager");
			e.printStackTrace();
		}
			
						
	}

und so Speicher ich es wieder:
Code:
/////////////////////////////////////////////////////////////////////////////////
	public void saveDataBase() throws IOException, ClassNotFoundException
	{
		Debugger.outln("DataBase DATEN SPEICHERN !");
		FileOutputStream 		fos = new FileOutputStream("PokerDB.tmp");
		ObjectOutputStream 	oos = new ObjectOutputStream(fos);
		
		oos.writeObject(ProfileManager.getInstance());
		
		oos.close();				
	}
 

Landei

Top Contributor
Deine Klasse hat keine serialVersionUID, also berechnet dir der Compiler eine. Nun können sich entweder die Definition der Klasse auf dem anderen Rechner oder der Algorithmus zur Berechnung der serialVersionUID bei verschiedenen Java-Versionen unterscheiden. Probiere mal

Code:
	private final static long serialVersionUID = 1;

in deine Klasse einzufügen, vielleicht geht's dann. Wenn du unbedingt die alten, schon serialisierten Objekte lesen willst, brauchst du natürlich
Code:
   private final static serialVersionUID = -2514362798440941654
 

FArt

Top Contributor
Aus http://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html:
The serialization runtime associates with each serializable class a version number, called a serialVersionUID, which is used during deserialization to verify that the sender and receiver of a serialized object have loaded classes for that object that are compatible with respect to serialization. If the receiver has loaded a class for the object that has a different serialVersionUID than that of the corresponding sender's class, then deserialization will result in an InvalidClassException. A serializable class can declare its own serialVersionUID explicitly by declaring a field named "serialVersionUID" that must be static, final, and of type long:

ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;

If a serializable class does not explicitly declare a serialVersionUID, then the serialization runtime will calculate a default serialVersionUID value for that class based on various aspects of the class, as described in the Java(TM) Object Serialization Specification. However, it is strongly recommended that all serializable classes explicitly declare serialVersionUID values, since the default serialVersionUID computation is highly sensitive to class details that may vary depending on compiler implementations, and can thus result in unexpected InvalidClassExceptions during deserialization. Therefore, to guarantee a consistent serialVersionUID value across different java compiler implementations, a serializable class must declare an explicit serialVersionUID value. It is also strongly advised that explicit serialVersionUID declarations use the private modifier where possible, since such declarations apply only to the immediately declaring class--serialVersionUID fields are not useful as inherited members.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Probleme beim schreiben / lesen in TreeMap Allgemeine Java-Themen 9
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
B Compiler-Fehler Probleme beim Kompilieren mit Jsoup Allgemeine Java-Themen 8
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
B Input/Output Probleme beim Ausführen von Shell-Befehlen mit Java Allgemeine Java-Themen 28
J Probleme beim einbinden von Zip4j library Allgemeine Java-Themen 6
F SQLite mit Java / Probleme beim INSERT Befehl Allgemeine Java-Themen 4
S Eclipse Probleme beim Implementieren / Ausführen von jUnit 5-Test Suites Allgemeine Java-Themen 14
A Probleme beim Verstehen einer Aufgabenstellung Allgemeine Java-Themen 11
perlenfischer1984 Probleme beim Mocken Allgemeine Java-Themen 6
R probleme beim starten von jar unter linux Allgemeine Java-Themen 2
M Probleme beim rechnen, bei Zahlen mit führenden Nullen. Allgemeine Java-Themen 7
E JCuda-0.6.5 Probleme beim ausführen der Datei Allgemeine Java-Themen 0
W JNDI - LDAP - Probleme beim editieren von Usern Allgemeine Java-Themen 0
N Zahlensysteme umrechnen; Probleme beim Umwandeln Allgemeine Java-Themen 4
A Probleme beim auslesen von Quelltext (HTML) Allgemeine Java-Themen 5
M 3D-Grafik Probleme beim drehen von Objekten Allgemeine Java-Themen 9
S Probleme beim Auslesen einer Liste Allgemeine Java-Themen 8
H Probleme beim Erstellen einer txt. Datei Allgemeine Java-Themen 7
S Probleme beim Start von jar Datein Allgemeine Java-Themen 15
S Probleme beim Compilen Allgemeine Java-Themen 8
N Probleme mit Umlauten beim Einlesen Allgemeine Java-Themen 6
P Probleme beim Signieren Allgemeine Java-Themen 2
S Probleme beim Anzeigen des Dateiinhalts Allgemeine Java-Themen 6
O Probleme beim vergleichen von 2 Datumsangaben Allgemeine Java-Themen 2
hdi Probleme beim Rechnen mit BigDecimal Allgemeine Java-Themen 5
V Probleme beim Drucken mehrerer PDF's Allgemeine Java-Themen 17
E Probleme beim Umstieg auf Version 1.6.0_12 Allgemeine Java-Themen 4
J Java Plugin probleme beim Laden? Allgemeine Java-Themen 3
D Probleme beim Umstellen von iText 1.4.4 auf Version 2.1.2 Allgemeine Java-Themen 5
G Probleme beim Sichern von Properties Allgemeine Java-Themen 2
W Probleme beim Ausführen einer Java Klasse auf Kommandozeile Allgemeine Java-Themen 17
S Probleme beim Einstieg Allgemeine Java-Themen 3
F Probleme beim speichern einer xml datei mit jdom Allgemeine Java-Themen 5
D Probleme beim FAQ (JTextField: Dokumentarten) Allgemeine Java-Themen 5
B probleme beim compilen/decompilen Allgemeine Java-Themen 4
G Probleme beim Mail-Api mit BCC Allgemeine Java-Themen 2
M Probleme beim ausführen meiner Klasse Allgemeine Java-Themen 8
G probleme beim sortieren einer ArrayList Allgemeine Java-Themen 8
G Probleme beim Entzippen Allgemeine Java-Themen 4
G jdk1.5 Probleme beim Installieren unter Win Allgemeine Java-Themen 2
J Probleme mit der CommApi beim ProgrammStart über Konsole Allgemeine Java-Themen 2
P Probleme beim Einlesen einer TXT/CSV-Datei aus einem JAR Allgemeine Java-Themen 7
C Probleme beim Starten eines Java-Programms Allgemeine Java-Themen 2
E Probleme beim Zugriff auf verschachtelte Vektoren Allgemeine Java-Themen 16
G Probleme beim Verbinden auf einen Notes 5 Server Allgemeine Java-Themen 3
S Umstellung von File auf Path - Probleme mit Stream Allgemeine Java-Themen 5
C Probleme mit javax.mail.Session Allgemeine Java-Themen 8
M tomcat probleme Allgemeine Java-Themen 1
N Division macht Probleme Allgemeine Java-Themen 14
MarvinsDepression Probleme mit relativem Dateipfad Allgemeine Java-Themen 1
G Geotools Probleme nach PC-Wechsel Allgemeine Java-Themen 6
nibe1501 GUI Probleme Allgemeine Java-Themen 16
C Probleme mit dem WindowBuilder Allgemeine Java-Themen 3
P Selenium . Probleme ein Iron Icon Element anzusprechen Allgemeine Java-Themen 2
K VisualVM Profiling Remote Probleme Allgemeine Java-Themen 1
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
M Probleme bei Eclipse wenn ich entpacke Allgemeine Java-Themen 15
D Regex Probleme Allgemeine Java-Themen 2
M Probleme jar datei. Allgemeine Java-Themen 2
L Vererbung Verständnis Probleme Vererbung Allgemeine Java-Themen 2
Dann07 Probleme mit OpenAL Allgemeine Java-Themen 0
V Compiler-Fehler Online Compiler Probleme Allgemeine Java-Themen 4
M Probleme mit Negamax-Algorithmus Allgemeine Java-Themen 29
M Probleme mit BigDecimal Allgemeine Java-Themen 1
T Probleme mit NumberFormat Allgemeine Java-Themen 5
J Probleme exe-Start mit Task Scheduler Allgemeine Java-Themen 1
F Variablen Palindromzahl (Probleme mit Methode) Allgemeine Java-Themen 9
K Data Konverter - Probleme mit Byte[] Kodierung Allgemeine Java-Themen 3
T Probleme mit dem Pfad zum Propertie file Allgemeine Java-Themen 7
H Swing HashMap zu Tabelle macht mir Probleme Allgemeine Java-Themen 4
Neoline Interpreter-Fehler Probleme mit Arrays.toString Allgemeine Java-Themen 7
J Erste Schritte Probleme mit der Hauptklasse Allgemeine Java-Themen 14
J Tetris Probleme bei Klassen Allgemeine Java-Themen 14
J MinMax VierGewinnt Probleme Allgemeine Java-Themen 22
J Probleme mit CodeCoverage und Lombok Equals Allgemeine Java-Themen 1
R Snake Probleme Allgemeine Java-Themen 2
RalleYTN 3D Objekt Translation basierend auf Rotation (Probleme mit Z Rotation) Allgemeine Java-Themen 0
Bluedaishi Druck Probleme mit PDF dateien Allgemeine Java-Themen 4
G Ant Probleme bei einer Installation die Apache ant+ivy verwendet Allgemeine Java-Themen 14
E TableView Probleme Allgemeine Java-Themen 7
S Kaffemaschine Programmierung Probleme Allgemeine Java-Themen 2
K Threads Runtime und Process Probleme Allgemeine Java-Themen 3
S Probleme mit unterschiedlichen Java-Versionen (Mac OS X 10.11) Allgemeine Java-Themen 0
S Event Handling keyPressed()-Probleme Allgemeine Java-Themen 2
VfL_Freak Große und seltsame Probleme nach Java-Update auf V1.8.0_91 Allgemeine Java-Themen 3
P Probleme mit Grafik (Java) Allgemeine Java-Themen 6
H Probleme mit DAY_OF_WEEK Allgemeine Java-Themen 4
Arif Probleme mit NullPointerException Allgemeine Java-Themen 2
E Probleme mit nextInt() und Exception Allgemeine Java-Themen 35
Streeber Probleme mit AWT-EventQueue: ArrayList Elemente hinzufügen Allgemeine Java-Themen 1
D Performance-Probleme mit Joda-Time Allgemeine Java-Themen 3
RalleYTN Probleme mit Encrypting Allgemeine Java-Themen 10
M Probleme mit Schriftarten PDFBox Allgemeine Java-Themen 3
J Probleme mit der Java-Runtime Allgemeine Java-Themen 10
G Probleme mit BufferedWriter und URL Allgemeine Java-Themen 4
S Probleme mit meinem MacBook Pro DRINGEND HILFE erbeten! Allgemeine Java-Themen 17
Androbin Interpreter-Fehler Probleme mit Rekursion - StackOverflowError Allgemeine Java-Themen 8
M Runtime.exec() verursacht auf manchen Systemen Probleme - Ursache unklar Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben