1. Oracle starts to relicense as open source most parts of the JVM, spinning off OpenJDK in the process.
2. Oracle provides support, patches, community and endeavors to help get OpenJDK self-sustaining.
3. Once OpenJDK is maintained by the open source community and generally healthy, Oracle starts working on proprietary value-add additions that can benefit their customer base (and bank accounts).
We're entering phase 3. Oracle, beyond what you might think of them, has done a pretty decent job of following the overall plan. They have helped get the OpenJDK community off the ground and are still invested in its success.
Without doing the above, there was real risk that Java would succumb to other more open platforms or be splintered off by companies like IBM, Redhat, etc. Instead, the above plan allowed for Oracle to keep the core of Java in one piece, conceding that other companies would help with its evolution, and still reserve their ability to make a buck later.
It's a little shaky right now with all the hubbub about Oracle's licensing of the Oracle JVM. The messaging could have possibly been better. But if you haven't been aware of the OpenJDK and following along with it - if your sole source of all things Java has been Oracle - then it's definitely time for a wake up call.
Oracle is now a member of the Java community, not necessarily the driver.
I agree that, all in all, Oracle told the world what it's going to do and now is executing on the plan. It's no surprise really, and it makes sense that they want to make money somehow from Java considering how much they are putting into it.
Still, Oracle is most certainly the driver still. If you look at a chart like  you see that Oracle has an order of magnitude more commits than the 2nd company which, surprise, is SAP.
Also, if you read the OpenJDK bylaws  the OpenJDK Lead will forever be from Oracle as will the Board Chair. Oracle will never lose under a Two-Thirds Majority rule when they have 2 of the 5 seats.
Note how AdoptOpenJDK could not run the TCK on the JDK builds which included OpenJ9.
I think I was just trying to be a little more generous or wishful with my statement. Maybe I'm hoping that we are heading in a direction that doesn't require Oracle in the lead. Right now, Java needs Oracle as much as ever. And if Oracle continues to provide good leadership and does the right thing by Java, then why not continue to have them in the lead? I'm happy they are there and continue to provide good stewardship for Java.
I think the Java community could, if needed, fork Java completely away from Oracle. This would be a major undertaking with a lot of pain, and would definitely require other parties to get even more onboard. But at least now, with the way things are set, this could start to be a possibility if we ever needed it.
First, not only has OpenJDK not been "spun off", OpenJDK is the name of one and only JDK project at Oracle. It is not the only product, but it is the only project.
Second, while we happily cooperate with other contributors like Red Hat and Google, and greatly appreciate their contributions, Oracle is not only very much in the driver seat, but ~90% of the work on OpenJDK is done at Oracle. Nearly 100% of new large features are led by Oracle.
Third, I don't know about add-ons, but the transition we've recently done was open source all of the previously proprietary features in Oracle's JDK. Oracle's JDK is, for the first time since Java's inception, 100% open source.
I agree that the messaging could be better (we're working on that). The licensing change, from a semi-free/open, semi-proprietary/paid JDK to a 100% open source license combined with optional paid support has, indeed, confused some people. That it came at the same time as a change in how we name our releases has only added to the confusion.
In any event, the recommended path is to use the current JDK, for which you get perpetual free support (by which I mean patches and updates) from Oracle, or from other sources. Java 9 was the last major release ever, and if you follow this recommended, default path you'll never have another major upgrade again. We believe that it is the easiest, cheapest upgrade path Java has ever had. Companies that for some reason cannot follow the cheap, easy path and prefer large but planned upgrades, can stick to the paid LTS service, and that is how Oracle funds OpenJDK.
In the past, when much of the JDK was closed, Sun and then Oracle funded the JDK by licensing Java for mobile/embedded devices (as there were field-of-use restrictions) as well as that annoying search toolbar, and the sale of quite expensive support. All of that is gone when we changed our funding model. Everything is open source, no field-of-use restrictions and no search toolbar. Everything is funded with support, and the prices have been cut drastically to be competitive with other companies that offer OpenJDK support.
The oracle.com link that you refer to is the source for the Oracle JDK, which includes the compiler, etc.
This is the direct link Google gives me and it's the one that requires a login.
Thank you it worked out pretty well for the application with which I've been using it the most. Never seen it starting so fast.
Are there any downsides to this?
In short, use the OpenJDK for your project. There are no real downsides for 98% of applications. AdoptOpenJDK is a great source, or likewise vendors like Redhat who are also maintaining OpenJDK distributions.
I ran into this login page a few days ago when setting up a new machine. It was enough friction to make me think "wait, what am I doing?", and use brew to get OpenJDK instead. That's a better decision all around, so in a weird way I'm grateful.
If I google "Java Runtime" I get Oracle's site, mirrors of Oracle's site, then very sketchy sites claiming to offer similar (which I can only assume are malware). That's the first page of Google's results.
How are people meant to find and use these alternatives?
So here you go:
AdoptOpenJDK - supported by a number of commercial companies and individuals committed to keeping the OpenJDK environment easy to use and integrate. Get your Mac, Windows and Linux JVMs here. https://adoptopenjdk.net/
Redhat - Maintaining the JVM long term support versions for their distributions, which includes inclusion by CentOS, etc.
Apt/Debian/Ubuntu - I'm not totally sure who is maintaining the Apt version, but Ubuntu and others have the LTS version of the JVM available as well.
It's complicated, but to try and summarize:
- Oracle will lead the development of the short-term supported OpenJDK versions and will make the compiled distributions available for free. This is currently Java 12.
- Oracle will also develop and maintain proprietary long term support versions for their paid subscriber base. This is currently Java 8 and Java 11.
- Oracle will release source-code patches for Java 8 & Java 11 as they make them for the LTS releases.
- Other companies/organizations will maintain their own LTS release versions and will apply the source patches to keep their versions up to date.
AdoptJDK, Redhat/IBM, Ubuntu, and Amazon all maintain their own LTS versions (Java 8 & 11). They take the patches offered by Oracle and maintain their own distributed binaries based on them. These companies (along with other contributors) also make their patches available to Oracle.
Think of Java now like you think of the Linux kernel. The kernel itself receives patches from all sorts of contributors. Various Linux vendors compile and provide the Linux kernel as part of their distribution. You don't go to kernel.org to get the compiled binary for your Linux system; you go to a Linux vendor for that.
Likewise, you need to go to a Java vendor to get a compiled convenience binary for your platform. AdoptOpenJDK offers a pretty friendly distribution for all the various platforms (Mac, Windows, Linux).
Or alternatively, you can get a LTS version from another vendor based on the OpenJDK source. For example, AdoptOpenJDK or your Linux distribution.
You might not like Oracle, but let's be fair here. They completely open sourced the JDK and encouraged other vendors to ship compatible versions. They charge only for support. You can get the identical product with no support absolutely free.
Oracle might have found a way to make money without being hated (too much) by the community, which I think is a positive development. There is some credit for Sun, which (iirc) is where the move towards OSS started; but Oracle is adding the $$$ aspect they are famous for, which Sun could never quite crack.
Oracle is trading (some) control on the ecosystem and tech, for commercial opportunities to monetize the existing userbase. It doesn’t matter to them if 90% of people move to OpenJDK, as long as the remaining 10% (and lower development costs) nets them more money than they make at the moment.
I don't care about the politics or niche between HotSpot Vs. OpenJ9, and reading the descriptions it sounds like 99% of people who don't know better want HotSpot and JDK 12, so why even ask these questions?
That website is a perfect showcase of why OpenJDK isn't popular. Oracle's consumer experienced is ten times better: https://www.java.com/en/
But honestly, the website itself is not hard to understand. It gives you a choice of three JDK versions (8, 11, 12) which are all supported versions. And it gives you two choices for JVM (Hotspot, OpenJ9). And of course, you need to pick your platform.
If you're coming brand new to the Java world, this is most definitely a cumbersome landing page. But for most people already in the Java world, these questions are quite relevant and appropriate. And the default choice (Java 8 + Hotspot) are quite sensible for most newcomers.
Oracle's java.com website doesn't really give you the developer experience needed for Java. That's more focused on delivering the end-user JRE, not the developer JDK.
Java isn't aimed at consumers, either.
No need for users to install a JRE or even know they’re using a java application.
If an app developer wants to use a version of the JDK other than that freely supplied by Oracle at https://openjdk.java.net/ , they can distribute AdoptOpenJDK, Apache Corretto, or any of the many other openjdk distributions.
But to your point, the whole fiasco of including ask.com sure gave Java a black eye. This was the worst thing that Oracle could have ever done for the adoption of Java. So dumb.
But anyway, all downloads of Java regardless of source (to my knowledge) are free from that adware now. Definitely all the OpenJDK distributions are, which you should likely be using anyway.
In any case, I'm impressed that OpenJDK manages to be a clear winner on all of access (no login needed), convenience (package managers set up paths), and principle. FOSS doesn't usually have a reputation for being faster and easier to set up than its owned alternatives.
Note also, java.com will only give you the latest short-term support version, which is currently Java 12. So if you want a LTS version, you will have to go elsewhere.
But the post title says JRE, not JDK.
The same holds for the current version JDK.
For older versions, login has always been required.
So please, don't spread FUD like this.
Already during Sun days one needed to login for EOL versions of Java.
JRE was EOL as per Java 9 release.
Adopt OpenJDK has a great long term support release for v8 and v11 of the JDK/JRE. Free as in beer.
(I work at Oracle on the JDK)
Because this works for me.
Not that I would do this unless I'm prevented from downloading OpenJDK.
It may be that their efforts to increase profits right now also inhibit Java's pre-eminence in the open source community over the long run. I doubt that's a major concern for them. Oracle is a Fortune 500 company, not a nonprofit foundation.
Java's push onto the web failed (applets), Java's push onto desktops failed (AWT/Swing), Java's push onto mobiles failed (Java ME; Android doesn't count, Google did it despite/against Sun/Oracle). The only truly successful Java domain is Java backends, which was rescued from Java EE hell by Apache, basically.
In the enterprise, open source looks a fair bit like a Java monoculture, and it's one that's become way too heavily influenced by the interests of a very small number of corporations. It's another story that starts off looking like a big success for open source, and ends by looking like a big success for co-opting open source.
I'd be pretty happy to see Java fall down a peg or two, so that we can move back toward being a bit more bazaar and less cathedral.
Focusing on .NET nowadays, but there are definitely a few areas where .NET Core fails short of Java offerings.
Java Card runs on 1+ billion devices.
What was once open is closed. What was once closed is open.
Oracle JDK is based on it, and Oracle is adding proprietary features so they can make a buck.
Honestly, I'd say the new situation is better than the old. Oracle no longer has the stranglehold over Java that they had since they bought Sun.