Import A Project Into Eclipse

When I get someone’s Eclipse project I always ended up recreating the project. Now I won’t need to do that anymore since I learned about the Import feature.

  1. Go to File > Import…
  2. Select Existing Projects into Workspace
  3. Select the root directory of the project
  4. Press Finish and watch Eclipse wonderfully recreate the project.

Serial Version UID

It is simple to make a class serializable, just have it implement the interface. However it is not easy to support the serialized form forever.

One issue is the serial version UID. Every serializable class has a unique identification number associated with it. If you do not specify the identification number explicitly by declaring a private static final long field named serialVersionUID, the system automatically generates it by applying a complex deterministic procedure to the class… If you change [the class] in any way … the automatically generated serial version UID changes. If you fail to declare an explicit serial version UID, compatibility will be broken.

Bloch, Joshua. Effective Java. p. 214

To generate the serial version UID for a class use the serialver tool which comes with the Java SDK. The serialver tool returns the serial version UID for one or more classes.


$ serialver -classpath 'build;C:/foo/classes.jar'


> serialver -classpath build;C:\foo\classes.jar

An even easier way to generate the serial version UID is to use the Eclipse IDE. If your class implements the interface and it does not have a serial version UID then Eclipse will give a warning about this next to the class name. If you click on the warning you can choose the option “Add generated serial version ID.”

Note, currently there is a bug with Eclipse and generating the serial version UID. When attempting to generate a serial version UID you will see a dialogue window which says “Computing serial version ID….” and “Starting virtual machine…”. Unfortunately this hangs and you are forced to kill your Eclipse IDE. I started seeing this bug yesterday after installing some JDBC plugins and the GEF plugin, I’m not sure if it’s related to that. I tried disabling the plugins but I still see the problem. Before I wasn’t having this problem.