Matthew Blackford
Matthew Blackford

Reputation: 3051

How can I find out the serialVersionUID of a serialized Java object?

I have several serializable classes that were compiled without specifying a serialVersionUID. I now need to add some data members to these classes but wish to preserve some already serialized objects.

Is there anyway to find out the serialVersionUID of these serialized objects so that I can specify the same ID in the source code?

Upvotes: 13

Views: 9949

Answers (3)

TofuBeer
TofuBeer

Reputation: 61546

If you haven't modified the code yet you could probably run the serialver tool (part of the JDK) and see what it generates. I believe that will get you what the calculated seriVersionUID is.

Here is a brief article on serialver.

Upvotes: 14

Varkhan
Varkhan

Reputation: 16761

What I usually do is, I compile the code, try to run it, and the raised exception mentions the offending SVUID, so I can cut and paste it in my own code. Crude, but it works.

Upvotes: 6

Thilo
Thilo

Reputation: 262814

If you are using Eclipse, it has a "quick fix" to generate the calculated serialVersionUID. This of course only works if you have the (exact) source for the classes at the time the objects have been serialized.

If you have at least the class files for them, use the "serialver" command line tool (comes with JDK).

Upvotes: 3

Related Questions