This document contains information on the following topics:
For information about incompatibilities between the original J2SE 1.4.0 release and J2SE 1.3, see the compatibility documentation for the Java 2 Platform, v.1.4.0.
For information about incompatibilities between versions 1.3 and 1.2 of the Java platform, see the compatibility documentation for the Java 2 Platform, v1.3.
For information about incompatibilities between versions 1.2 and 1.1 of the Java platform, see the compatibility documentation for the Java 2 Platform, v1.2.
For information about incompatibilities between versions 1.0 and 1.1 of the Java platform, see the compatibility documentation for the JDK 1.1 software.
See the Clarifications and Amendments document for a summary of changes that have been made to the specification of the Java programming language since the publication of the original Java Language Specification .
The Java 2 SDK, v1.4.1 is upwards binary-compatible with Java 2 SDK, v1.4.0 except for the incompatibilities listed below. This means that, except for the noted incompatibilities, class files built with version 1.4.0 compilers will run correctly in the Java 2 SDK, v1.4.1.
In general, the policy is that
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 Java 2 SDK'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.
The Java 2 SDK versions 1.2, 1.3, and 1.4 are upwards source-compatible with JDK software versions 1.0 and 1.1, except for the incompatibilities listed below. This means that, except for the noted incompatibilities, source files written to use the language features and APIs defined for 1.0 and 1.1 can be compiled and run in the Java 2 SDK (all versions).
Downward source compatibility is not supported. If source files use new language features or Java 2 Platform APIs, they will not be usable with an earlier version of the Java platform.
In general, the policy is that:
Deprecated APIs are methods and classes that are supported only for backwards compatibility, and thecompiler will generate a warning message whenever one of these is used, unless the -nowarn command-line option is used. It is recommended that programs be modified to eliminate the use of deprecated methods and classes, though there are no current plans to remove such methods and classes entirely from the system.
Some APIs in the sun.* packages have changed. These APIs are not intended for use by developers. Developers importing from sun.* packages do so at their own risk. For more details, see Why Developers Should Not Write Programs That Call sun.* Packages.
J2SE 1.4.1 is strongly compatible with previous versions of the Java 2 Platform. Almost all existing 1.4.0 programs should run on J2SE 1.4.1 without modification. No compatibility issues between J2SE 1.4.0 and J2SE 1.4.1 are known at this time.