Upgrading major Java versions

October 6, 2014 | 4 minute read
Text Size 100%:

With the release of Java 8 back in March 2014, many users have already upgraded. They can take advantage of new features such as:

There are many write-ups and tutorials that cover what’s new in Java 8. The Oracle Java 8 launch videos gathered knowledge together from many people directly involved in creating Java SE 8.

Rather than covering specific features, I would like to gather details that many software teams should understand as they work on projects.

  • What are the support lifetimes of each version of the Oracle JDK?
  • Where do we find the list of changes across the major version, such as from Java SE 7 to SE 8?

Noteworthy Points

Oracle Java SE major releases are updated for the public with bug fixes, security fixes, and minor updates for a period of at least 3 years before the release reaches end-of-public-updates (EoPU). Oracle Java SE commercial product releases are supported for an even longer period of time from initial release date, enabling IT managers and ISVs to plan their upgrades according to their individual business practices.

The release notes of major releases contain a compatibility guide about migration. Please consult the guide in addition to testing your program.

Upgrades can be controlled and done in pieces, rather than upgrading all environments at once. Start with developer systems, then test environments, then production systems.

Backward Compatibility

Java versions are expected to be binary backwards-compatible. For example, JDK 8 can run code compiled by JDK 7 or JDK 6. It is common to see applications leverage this backwards compatibility by using components built by different Java version. A Compatibility Guide (explained later) exists for each major release to provide special mention when something is not backwards compatible.

Oracle Java SE Support Timelines

Oracle provides thoroughly tested binaries across a number of platforms along with additional tools for management and monitoring.

The Oracle Java SE Support Roadmap identifies periods during which Oracle offers free (gratis) updates for a Java version.

Oracle Java SE Version General Availability End of public updates notification End of public updates
This copy only lists dates before its publication. See support roadmap for all current information.
8 March 2014
(see roadmap)
(see roadmap)
July 2011
March 2014
(see roadmap)
6 Dec 2006
Feb 2011
Feb 2013 (maintenance releases through Java SE Advanced)
5 May 2004
Apr 2008
Oct 2009

Users can purchase Oracle’s commercial Java SE offerings, which provide support and updates beyond the end of public updates.

There are some general rules to deal with these timeframes:

  • Users may evaluate and provide feedback on Early Access Releases before the general availability of a specific major version. For example, eager developers can already test JDK 9 as it is being developed.
  • Users may consider upgrading to a major release any time after it becomes generally available. Once the end of public updates notification goes out, users of this version should begin to plan to upgrade to the next major release.
  • User who chose to avoid upgrading to the next major release can obtain a commercial support contract for Java SE in order to keep receiving updates.

Identifying the list of changes between major versions

Many application owners and developers begin their upgrade planning shortly after general availability of a major Java SE release. General availability is a time when changes and benchmarks stabilize a little, offering a more concrete understanding of, after upgrading, what will happen in production environments.

The first general availability release contains a special piece in its release notes: the Compatibility Guide. This compatibility guide provides information about what one might encounter when upgrading an application from a previous version, such as from JDK 6 to JDK 7 or from JDK 7 to JDK 8. Those skipping a version from JDK 6 straight to JDK 8 may want to consult the guide for JDK 7 in-between.

If reading the release notes causes an analysis paralysis, consider using your application in a test environment. Then go back to check the notes and you may have a better understanding of what to look for while reading.

In addition to the release notes, there are a large number of "What’s New" write-ups that showcase changes from a user perspective.

For Java SE 8, here are a few good articles that both describe and teach new features:

Presentations specific to upgrading the major Java version:

Two other presentations explicitly cover upgrading across major Java versions:

  • Smart Migration to JDK 8 by Geertjan Wielenga provides guidance on new features and how to update applications.
  • Java 7 State of the Enterprise by Markus Eisele contains good information about upgrading from JDK 6 to JDK 7. The strategic guidance on upgrades is beneficial, but it was written in 2011 when Java SE 7 was still new.

Uptake of Java SE 8

At present, both Java SE 7 and Java SE 8 are publicly updated per the Oracle Java SE Support Roadmap. The period of overlap allows thorough testing of both versions, with updates addressing issues that were identified. The current plan to debut Java 8 as the default on Java.com before the end of 2014 comes as a result of good testing: the Fedora project is switching their default, new versions of Scala will only run on Java 8, etc.

I encourage you to consider upgrading systems to use Java SE 8 and take advantage of speed, shorter code, and the other benefits that it provides.

Guest Author

Previous Post

Final Keynotes Reflect Back, Move Forward

Caroline Kvitka | 3 min read

Next Post

Lambda Q&A Panel

Caroline Kvitka | 3 min read