Let's have a chat about Java licensing, says unsolicited Oracle email
theregister.com
theregister.com
- OpenJDK is the reference implementation, it has the same license as the linux kernel, and almost all of the “alternative” JDKs you might have used are all repackaged OpenJDKs with minimal patches. OracleJDK is also like that.
- Java is completely free and libre. You can choose to pay for it the same way you can seek out Red Hat for a paid support license. The kernel/OpenJDK itself is completely open-source.
- OracleJDK itself has a “freemium” model, where you can use the latest LTS release freely, until the next one comes along (plus one year).
- Open JDK is being developed like 90+% by developers employed by Oracle
I wonder how Oracle knows which contacts to email. Does the Oracle Java SE phone home?
1 - https://medium.com/@javachampions/java-is-still-free-3-0-0-o...
Track downloads by IP, map IP to company network, call that company. The same way they're using for VirtualBox.
> Does the Oracle Java SE phone home?
Never heard of that and I doubt it.
Received a mail for VirtualBox 10 days ago.
1. Old version, and security updates are still required
There's some critical piece of legacy software that has only been tested and observed to work on an old version of the JVM (e.g Oracle JDK 8).
The cost of decommissioning the software OR upgrading and re-testing on a later JDK OR switching to the OpenJDK (without security updates...) is perceived to be more expensive or in breach of company policy versus paying licensing fees.
2. Use of proprietary or deprecated APIs
Either company code or that of a library dependency has reliance on proprietary or undocumented Oracle (or Sun) APIs and toolkits that aren't supported in OpenJDK.
The chances that the existing team members, or the current army of "Spring Boot Microservice Developers" will be able to rationalise or unwind this code in a reasonable time frame is slim.
Though to be fair I haven't seen #2 in some time now.
Though at that point I wouldn't touch anything Oracle with a long pole.
It's oracle. They know how to get hold of people. Their business model has involved sending threatening letters/emails to people to try to get them to cough up additional license fees since at least the early 90s. It used to be "let's talk about your oracle license to check you aren't running it on more cores than you told us about", now they have just changed to threatening people about JDK licensing. On the database side, for some time their tendency to threaten/harass their customers has been so bad that if you're in tech leadership you'll find there is a cottage industry of consultants who cold-call you offering to help you with your oracle license audit[1] just because its so common and unpleasant for businesses to have Oracle audit their license usage trying to squeeze more cash out of you.
[1] Whether or not you have an audit or indeed use oracle products at all.
Even got some spam emails for Oracle Cloud as a result!
It seems like the kind of trap in which one could easily ensnare himself.
(This is assuming that I understood the things correctly, which is not a given at all with Oracle)
[1] https://www.oracle.com/java/graalvm/ [2] https://www.oracle.com/a/ocom/docs/graalvm_enterprise_commun...
Probably some overlap with companies using Oracle's Database.
Also is this the case if you use jlink (and/or jpackage)?
BTW. JRE is no more since JDK 9, and Oracle doesn't offer it (but other vendors do) - so in case of Oracle builds one hase to use jlink or package whole JDK.
Not saying what is best/worst, it's mostly a matter of opinion / contracts in the end.
Oracle must really be desperate.
Is the idea that only people who really need oracle will run it so they just jack the price up? This is very different from when I worked in Java and the jre was free. I can’t think of any reason to build in java if this is the price of the runtime.
[0] https://www.oracle.com/java/technologies/java-se-subscriptio...
These days .Net applications are fully self-contained, cross-platform, with everything you need in the bin. Unlikely Microsoft could go after people similarly even if they wanted to.
I definitely feel bad for Java developers, Oracle has ruined Java's reputation and made companies more careful around it even if they may not be impacted.
As a Java developer, I am certainly much happier now than I was 15 years ago when Sun couldn't invest more in Java development.
Disclaimer: I work for Oracle, but not on Java/JVM.
The JDK is under the same GPL 2.0 license as Linux, which is a rock solid way to ensure nobody can ever make it less open source. Several big players are contributing to Java and due to it being GPL licensed everything is open source.
For the .NET ecosystem it's still 99% Microsoft with virtually no others contributing. And it's only MIT licensed so anybody picking it up in the future can do so without contributing back to open source.
OpenJDK refers to different things. One of the things it refers to is an open source repository. (a git repo, to oversimplify things). It also refers to a 'packaging' - more on that later.
OpenJDK (the repo) is source code, not something ready-to-install or distributable on its own. It's open source. Anybody can 'package' it - compile it, wrap an installer around it, put that on a website. Make some arrangement about keeping it up to date (which may involve putting in the license click-through: Hey, you're on your own). Lets call that a 'packaging' of the OpenJDK project.
Packagings come in many flavours. They are all effectively identical, in that it's just a different party running the build script and sticking it on their website. Some _do_ add tweaks (generally, in the form of backports of security patches) but they either don't or these tweaks are in such exotic areas you are extremely unlikely to run into them.
Some versions are blessed by oracle as 'LTS' - Long Term Support. In theory this is a made up thing that only applies to one of the 2 packagings oracle releases. In practice every packaging that makes a distinction between support duration follows oracle's LTS schedule.
The common packagings:
* Oracle JDK - this is a __commercial__ offering, for all versions, though there is a 'developer release' that costs nothing, but __only__ for the most recent version. The concept of a long-term version applies partly to the actual commercial license (in that _all_ versions enjoy long support, with LTS versions longer) - and doesn't apply at all to the dev release, in that the day a new release of OpenJDK (the source repo) shows up is the day the dev release of the previous version ceases to be supported. LTS version or not. * Oracle's OpenJDK - this is a free release for developers that does not engage in LTS anything. The day the source repo has a new major version is the day the old OpenJDK version is no longer supported regardless of LTS. __Hence, do not use this, even though it is the most popular, unless you really know what you are doing__. * Adoptium is a packager that follows the LTS schedule, and is run with FOSS ideas. This should be your default choice. * Azul is a commercial entity that offers a boatload of packagings. Including JREs (JDKs without the dev parts, e.g. without a compiler) which aren't really a thing anymore. * Amazon offers corretto, which is a packaging that they explicitly test on AWS servers. Free, and follows the LTS schedule.
In general I strongly recommend you get Adoptium or for AWS-specific interactions perhaps Corretto (but adoptium runs just fine on EC2 if you prefer this).
If you do that, this 'java licensing' thing is completely irrelevant to you.
You mean "open source build for Java", because OpenJDK is open source, here: https://github.com/openjdk/jdk
One can build JDK themselves, it is not that hard.
That's why I call it "distro". Matter of terminology, I guess.
These articles are FUD with zero relevance to basically anyone. They build on fear/hate of Oracle, without any news content.
Feel free to play with the language, it has improved a lot and the ecosystem around the whole platform is absolutely flourishing. Even if Java - the language - itself is not your thing, there are many high quality JVM languages that can make use of the fantastic ecosystem.
I wonder if this strategy came after they failed the case against Google...