ERRO - SERIALIZAÇÃO (Não funciona se rodar apartir do .JAR)

2 respostas
MrDataFlex
Pessoal, tenho um programa que grava objetos serializaveis em arquivo na raiz: c:\arquivo.txt, ele funciona td blz, se eu rodar ele apartir do
netbeans, porém, quando gero o .jar... ele da o seguinte erro:

Microsoft Windows XP [versão 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.


java.io.InvalidClassException: classes.Cliente; local class incompatible: stream
 classdesc serialVersionUID = 3437275754233102996, local class serialVersionUID
= 2322049771888994575
        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.readOrdinaryObject(Unknown Source)
        at java.io.ObjectInputStream.readObject0(Unknown Source)
        at java.io.ObjectInputStream.readObject(Unknown Source)
        at java.util.ArrayList.readObject(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at java.io.ObjectStreamClass.invokeReadObject(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 gravacao.Persiste.recuperar(Persiste.java:57)
        at trabalhofacul.Gerente.<init>(Gerente.java:29)
        at trabalhofacul.Main$1.run(Main.java:28)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

Alguém faz idéia , de como resolver isso? ABRAÇOS!!!

2 Respostas

peerless

Bom vamos por parte,
primeiramente, adicione o seguinte atributo a cada classe serializável que conter, especificando a sequencia das suas alocações (classificando-as como serializáveis na memória)

private static final long serialVersionUID = 1L;

Após isso, apague todos os .class que o build havia gerado anteriormente, inclusive os arquivos de dados que a serialização estava registrando.

Recompile tudo de novo,
e continue seu projeto.

Abraços,

JMan

Vc esta com versões diferentes da sua classe, logo não vai funcionar mesmo.

java.io.InvalidClassException: classes.Cliente; local class incompatible: stream
classdesc serialVersionUID = 3437275754233102996, local class serialVersionUID
= 2322049771888994575

Criado 27 de junho de 2007
Ultima resposta 28 de jun. de 2007
Respostas 2
Participantes 3