
AdoptOpenJDK: Open-source, prebuilt OpenJDK binaries - nnnmnten
https://adoptopenjdk.net/
======
hs86
On macOS and Windows their various builds are also available over the Homebrew
and Scoop package managers:

[https://github.com/AdoptOpenJDK/homebrew-
openjdk](https://github.com/AdoptOpenJDK/homebrew-openjdk)

[https://github.com/lukesampson/scoop/wiki/Java](https://github.com/lukesampson/scoop/wiki/Java)

~~~
pkulak
And SDK Man, which is fantastic:

[https://sdkman.io/](https://sdkman.io/)

~~~
thomascgalvin
SDKMan is a thing of beauty. Completely changed the way I work with the Java
ecosystem.

------
latchkey
You don't need extra projects to manage this stuff anymore.

There is a great answer here...
[https://stackoverflow.com/questions/52524112/how-do-i-
instal...](https://stackoverflow.com/questions/52524112/how-do-i-install-java-
on-mac-osx-allowing-version-switching)

    
    
      brew install java (12)
      brew install java11
    

And you can simplify things...

In your .bashrc:

    
    
      export JDK_HOME=`/usr/libexec/java_home -v 12` # v9+ change to the version you installed
      export JAVA_PATH=$JDK_HOME
      export JAVA_HOME=$JDK_HOME
      export PATH="."
      export PATH="${PATH}:${JAVA_HOME}/bin"

~~~
nobleach
I'm a big fan of SDKMan for handling my Java/Kotlin/Gradle releases. It works
across all the major platforms. Homebrew is great on macOS, but kinda non-
existent on other platforms.

~~~
jillesvangurp
I use it together with jenv so I can switch between versions easily. Jenv does
not allow you to install versions. Sdkman makes it hard to switch between
versions but together they solve the problem.

------
throwaway8941
RedHat also provides OpenJDK builds for free, although hidden behind a
developer account registration.

[https://developers.redhat.com/products/openjdk/download](https://developers.redhat.com/products/openjdk/download)

~~~
shipilev
Red Hat also provides binaries built from the unmodified OpenJDK source here:
[https://adoptopenjdk.net/upstream.html](https://adoptopenjdk.net/upstream.html)
\-- which could be downloaded without developer account.

------
mrbonner
One of the company with large contribution to the AdoptOpenJDK is jClarity.
jClarity got purchased by Microsoft a few days ago. Are we seeing MS more
involvement for JDK development from now on? They are pushing it big for .NET
platform but the JVM consumption is a huge market opportunity. With MS
strategy of going all in in cloud computing, supporting the JVM is a no-
brainer to me.

~~~
needusername
Honest question, do any of the current jClarity employees actually do upstream
OpenJDK development? I know they build tools around Java but I'm not aware
that any of the current employees take part in upstream OpenJDK development
eg. at least have a JBS account. Maybe I'm just misinformed.

~~~
mrbonner
From what I know, jClarity is only contributing financial support to the
AdoptOpenJDK platform: build farm, hosting binaries. I don’t think they do
backport of securities or bug fixes for expired releases like Redhat or Amazon
does.

~~~
karianna
We had started to submit actual patches and work yes, that will now increase
at MSFT. (ex jClaritt CEO here)

------
hiram112
Anyone ever tried the Eclipse OpenJ9 VM? I've never heard of it, but it might
be fun to see if there's a difference with my various apps and performance in
an IDE.

I've just been hearing a lot of fuss about GraalVM, though haven't had time to
investigate what's so special about it nor how it might help typical
'enterprise' services and Java apps.

~~~
pjmlp
Yes, as part of Websphere.

It was quite good in the past and one of the first to support JIT caching.

Never used it after it went open source though.

------
solarkraft
Does the OpenJDK project not offer open source, pre-built binaries already?

~~~
shipilev
There are many OpenJDK(-based) distributions out there, mostly built from the
OpenJDK {8, 11} Update Releases sources. AdoptOpenJDK provides one of those
distributions.

Most of the actual backport work is done by the OpenJDK participants, notably
people from Red Hat (like me), SAP, Amazon, Azul and others. Oracle does not
participate in OpenJDK 8u/11u directly, opting to maintain their separate
tree, from which they build Oracle JDK 8u/11u available under the commercial
license. There is also a security collaboration between many companies
(OpenJDK Vulnerability Group), which drops its deliverables in relevant source
trees.

At one point, I tried to draw this map to show the bird's eye view on the
landscape: [https://shipilev.net/jdk-updates/map/](https://shipilev.net/jdk-
updates/map/) \-- you can find AdoptOpenJDK there.

What gets people confused is
[http://openjdk.java.net/](http://openjdk.java.net/) linking to Oracle
distribution (either at jdk.java.net, or Oracle site). That might be seen as
"OpenJDK providing the binaries", but it is actually not: it links to one of
the distribution providers.

~~~
pron
Well, maybe not directly, but the code you diligently backport does come
mostly from Oracle. ;)

~~~
shipilev
Granted, Oracle does contribute lots of code. As the result, lots of Oracle-
created code gets backported too. That said, I see people backport a lot of
code/tests that they wrote themselves, and/or with the help of non-Oracle
contributors. For example, Red Hat, SAP, Huawei backport a lot of code to
maintain the target platforms they own (e.g. AArch64 and PPC), or their
components (e.g. diagnostics support, Shenandoah), or their build
environments. While I understand the desire to pitch Oracle here, it would be
awkward to do so by undervaluing the contributions of others at the same time.

~~~
pron
I am not undervaluing anyone's contribution. Many companies contribute a lot
of valuable work, and we at Oracle are thrilled to cooperate with them and
actively encourage them to contribute more, but Oracle does currently
contribute ~90% of the work on OpenJDK. So many companies and independent
developers deserve full credit, but Oracle is in a separate category,
contributing as much as all others combined, several times over. This explains
why Oracle has opted to offer only paid support for those opting to stay on
old JDK versions: this is how Oracle funds lion's share of OpenJDK's
development.

BTW, the recommended path is free perpetual support by using the current JDK
version that, under the new gradual release model, means you'll never have to
do another major upgrade again. Staying on old JDK versions will be more
expensive, even if you're using a free distribution.

~~~
deadbunny
> the recommended path is free perpetual support by using the current JDK
> version that, under the new gradual release model, means you'll never have
> to do another major upgrade again.

Implying applications always receive continued development...

~~~
pron
This has always been true, and also true for those that stick to LTS. If you
want to receive security patches, you need to update your JDK. BTW, as the new
deployment approach is to create a custom minimal runtime and bundle it with
your app, your application may not need security patches, depending on what it
does.

------
vbezhenar
Another good alternative is Azul Open JDK build.

------
dahfizz
I assume this is mostly for windows? All Linux and I assume Mac has openjdk
available in the repos. The openjdk project itself also hosts binaries for
*Nix

~~~
kjeetgill
It can be helpful to just pull binaries from AdoptOpenJDK when you know you
want a very specific version.

System packages shift around minor versions which is fine 99% of the time
(given Java's compatibility especially). I've occasionally needed to work
around a bug in a specific version.

------
pron
Oracle's OpenJDK binaries are here:
[http://jdk.java.net/](http://jdk.java.net/)

~~~
tjohns
At least the MacOS binaries from Oracle are not packaged in a user-friendly
manner. You just get a zip file containing JAVA_HOME, and it's up to the user
to know what to do with this.

Apple requires you to copy this to a very specific, deeply nested, hidden
system directory.

That's definitely not something I could ask an end user to deal with.

After the bait and switch with the licensing for the original Java
distribution, I'm not comfortable downloading anything from Oracle anyway.
It's just too risky.

~~~
pron
The JDK requires no installation, and the concept of a "desktop system JRE" is
no longer recommended; in fact, a JRE is no longer shipped. The recommended
practice is for developers to bundle a custom, minimized version of the
runtime with their application (using jlink). End users shouldn't install any
Java runtime anymore.

> After the bait and switch with the licensing for the original Java
> distribution

The product known as OracleJDK used to be part free, part commercial, based on
which features you used. JRE downloads also used to contain that annoying
search toolbar. What we at Oracle have done is completely open-source the JDK,
for the first time in its history, and release it under two licenses: a free
license, and a license for those who wish to buy support. There is a large
clear warning on each download page guiding people to the distribution they
need. I think most people agree that this is a very welcome change, and I see
no bait and switch.

~~~
tjohns
I know desktop system JRE's aren't recommended any more, but there's still
plenty of apps out there that require them. I literally ran into this last
week.

I am glad to hear the toolbar on the JRE is gone, and I'm glad there's a
prominent notice on the download pages - but there's effectively no free
official standalone JRE for commercial use anymore.

~~~
pron
That's because a system JRE is the old way of doing things -- and moving away
from that wasn't arbitrary; desktops are encouraging app stores, and servers
are using containers -- and we want our OpenJDK developers (I'm one of those)
to focus on the new way of doing things. Oracle doesn't have control over an
ecosystem that could generate billions, like Google with Android or Apple with
iOS, so to pay the hundreds of full-time developers who develop OpenJDK, we
charge those who want to do things the old way for support. So if you don't
want to switch to the new way of doing things, you have a few options:

* Download a JRE with an installer from someone else who builds and distributes it; I don't know about certified distributions, but I think Adopt ships something JRE-like.

* Buy support from Oracle (and help fund OpenJDK's development).

* Build a JRE yourself from the JDK and package it with an installer.

I think that's reasonable.

------
nikolay
We've been using it on Docker and love it.

------
java-man
Please add an option with JavaFX bundled.

~~~
murkle
JavaFX included in builds from here (branded "Zulu FX"):
[https://www.azul.com/downloads/zulu-
community/](https://www.azul.com/downloads/zulu-community/)

(select JRE FX or JDK FX from the dropdown I guess - they've changed the
download page recently)

~~~
java-man
May be it's just me, but on Mac the process is rather convoluted, and is
certainly not optimized for end user.

------
anonymousJim12
What are the rules around distributing OpenJDK as part of a commercial
software/hardware product?

~~~
teh_klev
The licensing section should answer that question:

[https://adoptopenjdk.net/about.html](https://adoptopenjdk.net/about.html)

------
agapon
Notable omissions: any BSD platform.

~~~
karianna
We're chatting to the FreeBSD and OpenBSD folks about this.

------
cowmix
Does the Amazon JDK binary distribution compete with this?

~~~
meddlepal
Technically? Yes, Correto is it's own separate distribution that Amazon
manages porting upstream changes into. Same as how Azul's Zulu is a
"competitor" as well.

Practically speaking, it shouldn't matter as they all pass the Java TCK.

~~~
needusername
1\. AdoptOpenJDK does not run the TCK.

2\. Corretto and Zulu each have their own patch set. Corretto backports a
couple of G1 fixes and Zulu backports Flight Recorder and TLS 1.3.

~~~
karianna
Although no TCK we do run > 100,000 open tests, including many popular open-
source libraries, frameworks and languages. We're very comfortable standing
behind the quality of these binaries :-).

------
jeffreportmill1
Please add an option for JRE in the browser - JRE compiled to JavaScript or
WASM (like CheerpJ or TeaVM).

~~~
microcolonel
Seems maybe strange to run a JIT on a JIT. There are some smaller JVMs that
likely wouldn't need to be that different, but running HotSpot on WASM,
particularly in the browser, seems strange.

Why not compile your classes to WASM instead?

~~~
richdougherty
Java would work ok with AOT compilation. The major thing missing for running
Java and many other languages on WASM would be garbage collection.

[https://github.com/WebAssembly/gc/blob/master/proposals/gc/O...](https://github.com/WebAssembly/gc/blob/master/proposals/gc/Overview.md)

------
mister_hn
i wish there were still 32 bit JDKs for Java11+

~~~
karianna
There is for Windows and ARM32 - we're looking at Linux x86 (32bit) but not
100% sure we'll be able to deliver that.

------
needusername
It should be noted that AdoptOpenJDK does not run the TCK against these
binaries so they can not be called a compatible Java implementation.

~~~
bad_user
The TCK is not open, it isn't governed by a standards body, the TCL is
completely in Oracle's control.

If Java is to evolve as an open platform, it needs to break free from the TCK
that disallowed Apache Harmony to exist.

We don't need it and an independent TCK could be developed.

~~~
needusername
Yet any other OpenJDK distribution from Alibaba, Amazon, Azul, BellSoft,
RedHat, SAP (I probably forgot some) all run the TCK. All except AdoptOpenJDK.
And whenever you bring that up the only response is ranting about the TCK.

~~~
karianna
No ranting from us :-). We've not been granted access to the TCK and we
continue to hold an open dialogue with Oracle on this. We hope to get this
resolved down the line!

