A new “State of the Java ecosystem” survey by observability company New Relic states that the Amazon JDK (Java Development Kit) is now the most widely used, with 31.35 percent adoption versus 28.75 percent for second-placed Oracle.
This is a reversal from 2022, when Oracle took the top spot with 34.48 percent , and Amazon stood at 22.04 percent.
The figures are based on applications reporting to New Relic and do not claim to “provide a global picture of Java usage,” according to the survey methodology. That said, it is a real-world statistic likely to reflect business rather than casual Java usage.
Oracle is the official Java provider but the licensing for Oracle JDKs means that commercial usage can require a fee and associated administration. The release of JDK 17 in late 2021 (and still the current LTS or Long-term Support release) saw the introduction of the Oracle No-Fee Terms and Conditions (NFTC) License, which permits free commercial usage, but with updates only until one year after then next LTS release, expected in September this year. The short-term non-LTS JDK releases are also covered by the NFTC License but with updates only during their six-month lifecycle.
Amazon’s OpenJDK release is called Corretto and is free to use without restriction. So too is Eclipse Adoptium, the third most used JDK in production according to the survey, but at 12.07 percent is a long way behind the Amazon distribution and only fractionally ahead of its 2022 share (11.48 percent).
AWS is the largest cloud computing provider and for applications deployed to AWS, developers likely take some comfort from the notion that support and troubleshooting may be easier if using the provider’s own JDK. Amazon notes that it “runs Corretto internally on thousands of production services.”
Perhaps as one would expect, there is little production use of the non-LTS JDK releases, just 1.6 percent according to the survey, down from 2.7 percent in 2022. Most applications use JDK 11 (56 percent), an LTS release first made available in September 2018. JDK 17 accounts for just 9 percent of production applications, though New Relic observes that this has increased rapidly from under 1 percent in 2022. Java 8 still accounts for 33 percent of production applications, but down from 46 percent last year.
These figures show how organizations tend to prefer the stability of older runtimes, provided they remain supported, rather than the performance or productivity benefits that might come from use of the latest releases. This is the case even though most applications (70%) are containerized. Containers make it easy to keep runtimes up to date, but do not solve issues like breaking changes or possible unexpected behaviour arising from runtime changes.
Other trends noted by New Relic are increased use of multi-core containers (only 36 percent are now single core, down from 42 percent in 2022), and more use of the -XX:MaxRAMPercentage startup flag to constrain memory usage (30 percent of containerized applications, up from 9 percent last year).