Version compatibility

This release contains significant changes from previous releases, which might cause compatibility issues. For example, the SDK and runtime environment are rewritten to use the new Java™ module system, which introduces a number of changes to the structure, content, and operation of the Java runtime environment. In addition, the Oracle security implementation replaces the IBM security implementation, and the IBM XML implementation is removed.

The Java module system is introduced for the first time with this release. Modularity provides a framework that allows large applications to be broken down into smaller parts, or modules, which can be developed and tested independently. Application code should be easier to maintain, allowing developers to focus on writing new code and speeding up the development cycle. The module system has also been applied to the SDK and runtime environment, resulting in structural changes, content changes, and operational changes. These changes are expected to improve the scalability, maintenance, and security of the Java code. To learn more about the impact of modularity on the SDK and runtime environment, and any potential compatibility issues for your existing applications, see The module system.

In this release, the common security providers in the OpenJDK security implementation replace the IBM security implementation. To learn about the differences between IBM and OpenJDK Security that might affect your applications, see Determining application compatibility: security.

In this release, the IBM XML implementation is replaced with the OpenJDK XML implementation. To check whether your applications might have compatibility issues, see Determining application compatibility: XML.

The following list describes other situations that might cause problems for applications that were written and compiled under earlier releases of the SDK:
  • The underlying operating system or hardware introduces a change that requires the application to be recompiled.
  • The application has added a method name that clashes with the name of a new method, introduced in this release.
  • The application uses an API that was deprecated before this release, and that API is now removed.