DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

The software you build is only as secure as the code that powers it. Learn how malicious code creeps into your software supply chain.

Apache Cassandra combines the benefits of major NoSQL databases to support data management needs not covered by traditional RDBMS vendors.

Generative AI has transformed nearly every industry. How can you leverage GenAI to improve your productivity and efficiency?

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Related

  • How to Merge HTML Documents in Java
  • The Future of Java and AI: Coding in 2025
  • Tired of Spring Overhead? Try Dropwizard for Your Next Java Microservice
  • Using Python Libraries in Java

Trending

  • Kullback–Leibler Divergence: Theory, Applications, and Implications
  • A Complete Guide to Modern AI Developer Tools
  • Building Resilient Networks: Limiting the Risk and Scope of Cyber Attacks
  • Simplifying Multi-LLM Integration With KubeMQ
  1. DZone
  2. Coding
  3. Java
  4. OK, Java Is Still Free, But Which Version Do I Use and Recommend to My Clients?

OK, Java Is Still Free, But Which Version Do I Use and Recommend to My Clients?

Whether you are just starting to use Java, or have been using Java for years, switch over to the most recent version — it's as simple as that.

By 
Ken Fogel user avatar
Ken Fogel
·
May. 31, 19 · Opinion
Likes (21)
Comment
Save
Tweet
Share
96.2K Views

Join the DZone community and get the full member experience.

Join For Free

There remains significant confusion over the licensing and distribution of Java. I know this because I have contributed to this confusion. There is a debate in my college department over which version to use and how updates will be handled. Donald Smith, Sr. Director of Product Management at Oracle in Ottawa, has been kind enough to clear up these issues, probably for the 100th time. The purpose of this brief article is to summarize what I have learned. Before I begin, you should first read the following posts:

https://www.oracle.com/technetwork/java/java-se-support-roadmap.html
https://blogs.oracle.com/java-platform-group/oracle-java-se-releases-faq
https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later

Finished? Then, let’s begin.

Which Java Distribution Should I Use?

The distribution from https://jdk.java.net always has the latest JDK release including quarterly security updates. This is a tck-verified, quality-tested, production-ready and open-source licensed JDK built by Oracle. As of Java 11, this code base is effectively identical to the non-open-source licensed Oracle JDK. See the links above for the cosmetic, non-functional differences. You can still download Oracle Java from the Oracle Technology Network (OTN) and use it freely for personal use or training. Still, if you have any concerns or plan to distribute a product based on Java, get it from https://jdk.java.net. Have your clients use this as well.

There are many other channels for JDK releases as well from various Linux distributions, hardware vendors, software ISVs, and other support providers. Depending on your needs, those may be options as well. More on this later in this document.

What Does Long Term Support Mean?

Oracle will provide paid support for LTS versions; currently, this includes Java 7, 8, and 11, for a significant length of time. Java 11 will have extended paid support until at least 2026. Oracle also provides commercial support for non-LTS releases, such as Java 12, with the understanding that those releases are superseded by the subsequent release. For more information, see https://www.oracle.com/technetwork/java/java-se-support-roadmap.html

What Does the 6-Month Cadence of Java Releases Mean?

Every September and every March, a new feature release of Java will be available. These new versions replace the similarly timed updates as experienced in the legacy cadence model such as in Java 8. The last version of 8 is 212, though that number is not the number of distributed versions. Still, there were a lot of versions of 8 some even including new features. The six-month release will now be how patches, fixes, and updates will be delivered.

In a brief back and forth on Twitter with Brian Goetz, Java Language Architect at Oracle, he confirmed Java’s commitment to backward compatibility. If you have code you developed in Java 8, then you can rest easy that it will run in Java 13. If you are looking for a new developer for a Java 11 project and they tell you they trained on Java 13, then hire them; they also know Java 12, 11, 10, 9, 8, etc. Java will evolve and will change and that is how it should be.

Isn’t the Industry Reluctant to Use Anything Other Than an LTS Version?

Initially, yes, but only because of misunderstandings and simply wrong statements from people like myself. Just as you used to update your Java 8 when you heard that there was an update, you will update to the next version. The difference is that there is now a regular predictable schedule. This aligns with modern application development practices and other platforms that expect more frequent but manageable updates rather than tectonic shifts every 3-4 years. This will help Java as it continues to be the number one development platform for the cloud.

I Write Web Code Against an Application Server, Don’t They All Need Java 8?

Currently, the latest versions of IBM’s Open Liberty and RedHat’s Wildfly run on Java 12, as do others. My informal tests running servlet and JSF applications compiled with Java 12, but with the Maven settings for the compiler source and target to 1.8, it showed no problems even when the server, Payara, was running on the Java 8 JVM.

What About All Those Other Distributions of Java?

Amazon, SAP, Azul, RedHat, Bellsoft, and AdoptOpenJDK, just to name a few, are making distributions of Java available now. The only significant difference between them and what is available from https://jdk.java.net is that these come with installers while https://jdk.java.net only supplies zip/gz files. They are built almost completely from the same source code. Java does not need to be installed on any platform. Just unzip the distribution and configure your application, IDE, or OS to know where it is. All an installer does is unzip and write the optional system configuration to the OS for you. These companies simply provide an alternative to Oracle for paid support or provide a JDK for platforms other than Intel/AMD such as for ARM. There have been alternative distributions of Java for some years now, for example, with Red Hat providing an OpenJDK release since 2008 on Java 6.

Conclusion

If you are just starting to code in Java, then use the most recent version. If you are using Java, then update to the most recent version. If you are worried about possibly running afoul of Oracle licensing or prefer to favour open source then download Java from https://jdk.java.net otherwise download from the OTN.

Written with the assistance of Donald Smith

Java (programming language)

Published at DZone with permission of Ken Fogel, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • How to Merge HTML Documents in Java
  • The Future of Java and AI: Coding in 2025
  • Tired of Spring Overhead? Try Dropwizard for Your Next Java Microservice
  • Using Python Libraries in Java

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: