4 ms·
Dumb question, but what's the difference between the Open JDK and the Oracle JDK? Are they separate codebases?
by overgard 5y ago
Dumb question, but what's the difference between the Open JDK and the Oracle JDK? Are they separate codebases?
- kaba0 5y agoThey are largely the same, OracleJDK building on OpenJDK. There used to be some paid only features like flight recorder, but all were open-sourced by oracle. So as with most java vendors, you pay for the support.
- toyg 5y agoThey share 98% of the codebase. Oracle then sprinkles on top a small number of proprietary patches (some optimizations, a couple of tools) and their installer.
- panny 5y agoThe OpenJDK and OracleJDK are identical code bases since JDK 11 and are fully interchangeable. The only patches that exist for OracleJDK were the paid support patches for back ports. If you stay on the latest JDK, then this was never relevant to you. If your company is not nimble enough to do that, then it could pay for the tired dinosaur patches and stay on old JDKs. Since other companies have started contributing to the effort of tired dinosaur patches again, it's no longer necessary for Oracle to charge a fee to produce them. In other words, Oracle successfully averted a "tragedy of the commons" by asserting property rights long enough to make others behave and stop abusing the system.
- vbezhenar 5y agoI can’t find sources to support those claims. But AFAIK the main difference from practical POV is support time. Oracle OpenJDK builds are provided on rolling release cadence, there’s no LTS concept. Once Java 18 is out, you’re supposed to migrate ASAP. Oracle JDK does have LTS. You have a year after Java 21 LTS to migrate to it. But those 17.0.x patches will not be open source.
- papercrane 5y agoDepends on the version. Oracle has been working to shrink the difference with each version. They include a bullet list in their release notes for the differences. At this point probably the biggest differences are that usage logging is only available with Oracle's build, and the Oracle build requires 3rd party crypto providers to be signed. Other than that it's license difference, branding, and the installer does some things differently. https://www.oracle.com/java/technologies/javase/17-relnote-issues.html https://www.oracle.com/java/technologies/javase/17-relnote-i...