<p>I have one java program that has to be compiled as 1.4, and another program that could be anything (so, 1.4 or 1.6), and the two need to pass serialized objects back and forth. If I define a serializable class in a place where both programs can see it, will java's serialization still work, or do I need 1.6-1.6 or 1.4-1.4 only?</p>

Make sure the classes to be serialized define and assign a value to
```
static final long serialVersionUID
```
and you should be ok.
That said, normally I would not do this.  My preference is to only use normal serialization either within a single process, or between two processes are on the same machine and getting the serialized classes out of the same jar file.  If that's not the case, serializing to XML is the better and safer choice.