Ich habe Client und Server erstellt und dann eine Klasse in der Client - Seite für die Serialisierung hinzugefügt, dann ging einfach einfach in den Ordner des Clients auf meiner Festplatte und kopieren Sie es in die Serveradresse, sowohl classname.class
als auch classname.java
.java.io.InvalidClassException: lokale Klasse inkompatibel:
Es funktionierte gut in meinem eigenen Laptop, aber wenn ich wollte, dass meine Arbeit auf anderem System weiter, wenn ich die Projekte Ordner geöffnet und nach der Client mit dem Server zu verbinden versucht, die folgende Fehlermeldung angezeigt:
Exception in thread "main" java.io.InvalidClassException: projectname.clasname; local class incompatible: stream classdesc serialVersionUID = -6009442170907349114, local class serialVersionUID = 6529685098267757690
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1582)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
Was ist los? Liegt es daran, dass ich das Programm mit einer älteren Version der IDE ausgeführt habe?
EDIT
import java.io.Serializable;
import java.net.URL;
public class KeyAdr implements Serializable{
private static final long serialVersionUID = 6529685098267757690L;
public URL adr;
public String key;
}
Wie wird die serialVersionUID in der Definition angepasst? – lonesome
immer noch gleiche Fehler passiert – lonesome
Das ist seltsam. Ich würde überprüfen, dass beide Seiten die neueste Version der Klasse verwenden. – trutheality