I've always relied on Oracle's JDK, but I've noticed there are a ton of different Java Development Kits (JDKs) out there. What's the reason for this and what are these various versions meant for?
4 Answers
The confusion often lies in the fact that OpenJDK is technically the only implementation that adheres strictly to the Java SE specification, yet you’ll find numerous vendor builds that package and offer it with added features. Oracle’s JDK is basically just one compatible version of OpenJDK – with its own commercial support structure attached.
The main reason there are so many JDKs is due to Oracle's licensing changes and support policies. When Oracle bought Sun Microsystems, they made it harder for many users to continue using the Oracle JDK for free. As a result, a variety of organizations started creating their own distributions of OpenJDK, which is the open-source reference implementation of Java. If you're looking for long-term support, Eclipse Temurin (formerly AdoptOpenJDK) is a good choice since it’s community-driven and supports multiple versions without the strict licensing of Oracle.
Totally agree! But keep in mind that many of these 'JDKs' are just different builds of the same OpenJDK source. In essence, they vary only slightly but some offer extra features or optimizations.
It's all about licensing and support. Oracle offers an LTS version of their JDK, but their licensing can be a real pain. On the flip side, OpenJDK is GPL-licensed, so folks have started their own builds to provide ongoing support. This means if you’re in need of support or specific features, you have a lot of options depending on your project’s needs.
Exactly! It’s like a buffet of choices. You can pick what fits your needs best, but as a beginner, I’d recommend sticking with OpenJDK or something well-known like Temurin.
Historically speaking, after Oracle's changes, many vendors began building their versions of OpenJDK. They provide varying levels of support, optimizations for specific applications, and other tailored features. If you run a large enterprise, you can’t wait around for Oracle's fixes, so that’s where these other vendors come in.
Right! Some vendors like IBM and Azul have their own enhancements that are built specifically for high performance or cloud applications, which is pretty handy if you have specialized needs.
Good point! And newcomers shouldn't sweat it too much. If all you need is to get started with Java, any reputable build like OpenJDK or Temurin will do. Just make sure to keep it updated!