The JavaTM 2 SDK, Standard Edition, (J2SETM), v1.4 is upwards binary-compatible with J2SE 1.3 except for the incompatibilities listed below. This means that, except for the noted incompatibilities, class files built with version 1.3 compilers will run correctly in the J2SE 1.4.
In general, the policy is that
Maintenance releases (for example 1.2.1, 1.2.2) within a family (1.2.x) will maintain both upward and downward binary-compatibility with each other.
Functionality releases (for example 1.3, 1.4) within a family (1.x) will maintain upward but not necessarily downward binary compatibility with each other.
Some early bytecode obfuscators produced class files that violated the class file format as given in the virtual machine specification. Such improperly formatted class files will not run on the J2SE's virtual machine, though some of them may have run on earlier versions of the virtual machine. To remedy this problem, regenerate the class files with a newer obfuscator that produces properly formatted class files.