私はクライアントとサーバーを作成し、クライアント側でクラスを追加してシリアル化しました。次に、単にハードドライブのクライアントのフォルダに移動し、サーバーの対応する場所はそれぞれclassname.class
とclassname.java
です。java.io.InvalidClassException:ローカルクラスが互換性がありません:
それは私自身のラップトップでよく働いたが、私は他のシステム上で私の仕事を続けたいと思ったとき、私はプロジェクトのフォルダを開いたときに、クライアントがサーバーに接続しようとした後、次のエラーが表示されます。
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)
何が起こっているのですか? IDEの古いバージョンでプログラムを実行したからですか?
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;
}
定義でserialVersionUIDを調整する方法は? – lonesome
まだ同じエラーが発生します – lonesome
これは奇妙です。私は両方の側がクラスの最新バージョンを使用していることを再確認します。 – trutheality