Oracle Changed License for Java SE 8 … you must decide what to do (DAB)

On April 16, 2019, Oracle changed the licensing agreement for Java SE
from: Oracle Binary Code License Agreement for Java SE
to: Oracle Technology Network License Agreement for Oracle Java SE

Oracle is active at requiring organizations to correctly license their software.

If you want to continue to use Oracle Java, here are your options:

  1. If you are an organization, to continue at no cost then you need to switch to Oracle’s OpenJDK release.
  2. If you are a personal user or for development use, you can to continue to use the Oracle Java SE release.
  3. If you are an organization (or using it as part of your work for an organization) and want to continue to use Oracle Java SE, then you will be required to get a Java SE Subscription (i.e. pay money to use it).

I believe that most people using Java for DAB fall into the last category.

So what should you do? Based on the question/answers from the Oracle Java SE Licensing FAQ, I believe these are the options:

  • Use an older version of Oracle Java SE released under Oracle Binary Code License. The last version was Java SE Development Kit 8u202.
  • Use a version of OpenJDK that works with DAB. It needs to include JavaFX. Oracle’s OpenJDK does not work. Amazon Corretto does work with DAB 5.4 with a minor change (you need to set JDK_HOME env variable to the JAVA_HOME).

For the next version of DAB, we will be fully supporting Corretto and changing the documentation to prefer it. We will likely include information about the licensing change and point people to the last version of Oracle Java SE if they choose to use it (or they have other software that doesn’t work with Corretto and they need 1 JDK installation).

Thanks,
Chris

P.S. Here are some relevant questions/answers from the FAQ.

What about Java SE 8?

Oracle Java SE8 updates, which includes the Oracle JRE with Java Web Start, continues to be free for personal use, development, testing, prototyping, demonstrating and some other important uses explained in this FAQ under the OTN License Agreement for Java SE. Personal users can continue downloading the Oracle Java SE 8 JRE at java.com.

I don’t believe that use of it with DAB counts. I think Oracle would consider that commercial use (even though you are not charging for the output … you are doing the work as part of your work for an organization which makes it commercial).

What happens to the Oracle Java SE releases I downloaded under previous licenses, such as the BCL?

You may continue to use releases you have downloaded under the terms of the license under which you downloaded them. Legacy releases are still available in the Java Archives. Note that older versions of the JRE and JDK are provided to help developers debug issues in older systems. They are not updated with the latest security patches and are not recommended for use in production. Oracle strongly recommends that you remain on an up-to-date version of Java with the latest performance, stability and security updates.

If you are going to continue to use Java 8 SE, then the latest version you can use without having to likely pay licensing fees is Java SE Development Kit 8u202.

Which environment variables such as “JDK_HOME” are necessary for DAB to run with Amazon Corretto installed? Can you list them?

Amazon Corretto will assign JAVA_HOME. DAB is looking for JDK_HOME. Are you on Windows? Do you know how to set environment variables?

For Windows 10:

  1. tap on Windows key
  2. start typing environment and an entry named “Edit the system environment variables” Control Panel will list. select that. The window that displays says System Properties and the Advanced tab is selected.
  3. click on “Environment Variables” button. This will show a window with “User variables” on top and “System variables” at the bottom. There should already be a value for JAVA_HOME.
  4. click on the New button under System variables and enter:
    variable name: JDK_HOME
    variable value: %JAVA_HOME%
  5. click ok (on New System Variable window)
  6. click ok (on Environment Variables window)
1 Like

Yes, I have a Windows computer and I have already assigned the environment variables JAVA_HOME and JDK_HOME. Are there any other environmental variables that DAB needs?

Just adding the JDK_HOME is enough.

I have swapped to Corretto Java and it is working on DAB and for the build.

So imagine this example user:

He (or she) is working on DAB this week. On Tuesday he pulled the latest DAB and the instructions. He installed jdk-8u211-windows-x64.exe and is in the process of making dictionaries in context of his work.

Now today he found this post re licensing. There will be fresh instructions about using another tool from Amazon. So not legal work for part of this week.

Anything he needs to know about getting rid of the JDK on a Windows 10 machine?

  • There is a regular uninstall provided via Windows, fine
  • Will Oracle send an invoice to SIL?
  • Does this user need to somehow tell Oracle that he stopped using?
  • What about DAB: can the Java be swapped for this Corretto for an existing DAB-project?
  • Or does the setup need to be changed and an existing project needs “fixing” somehow?
  • Any steps a user needs to respect for that migration?

So far for this imaginary user. Hope he quickly finds another working environment.

And a word of compassion. I guess that people who create amazing things like DAB - or make dictionaries - do not so much enjoy wading knee deep in legal honey. For this transition I wish you much courage and good humour. Hope it goes well. If SIL would consider getting a corporate license and if this would help the situation, we would probably pay a reasonable fee, if it means we can keep using DAB and the other xAB:

Since our output is non-commercial at the user-end, and purchasing for a group of users, maybe Oracle would just give us favourable rates? Considering the time that goes into app making, paying a fee of 100 US$ to have a working tool, or a yearly fee of 20$ would be possible.

Just sending this as a feedback to encourage the developers. DAB is so useful, and working legally is so important, and considering that a lot of work has also gone into those JDKs, we should not just run for the “free stuff” (open source is still the best concept for our work, where available), we might consider all existing options and find the best tools.

For my work on end products, I found good open tools, like Scribus, Inkscape, GIMP, LibreOffice etc. But for my technical work in the project I have purchased several special tools which make my work much more efficient (like a pro Editor, a Regex tool, a not-publicity-funded e-mail service, etc.)

Thank you for keeping us posted.

Questions

  • Will Oracle send an invoice to SIL?
    • it might depend on what you put in the registration details
  • Does this user need to somehow tell Oracle that he stopped using?
    • I suspect they will know who is using it
  • What about DAB: can the Java be swapped for this Corretto for an existing DAB-project?
    • Swapping to Corretto has no effect on your projects. DAB does not check for Corretto (it will next week in 5.5 and then you will not need to manually add the JDK_HOME environment variable) We are still testing but no red flags so far.
  • Or does the setup need to be changed and an existing project needs “fixing” somehow?
  • No changes, except check for Tools > Settings > Code Libraries > JDK Location points to the new JDK location.
  • Any steps a user needs to respect for that migration?
    • Follow the instructions below.

To Install Corretto Java

  • uninstall all Oracle Java programs from Control Panel > Programs and Features
  • check by typing where java in a command prompt.
  • if anything shows up, delete it manually.
  • go to the Downloads for Amazon Corretto 8 web page
  • download the Windows x64 JDK MSI installer (unless you have a 32bit OS then Windows x86)
  • run the installer
  • this is installed into the C:\Program Files\Amazon Corretto folder
  • add an environment variable JDK_HOME that points to %JAVA_HOME%.
    • Click your Windows (Start) button and type in Edit environment variable for your account (it should popup when you are into the second word) and click that.
    • Click New…
    • In the Variable name write JDK_HOME
    • In the Variable value write %JAVA_HOME%

Or at the command line you can add JDK_HOME like this:

setx JDK_HOME "%JAVA_HOME%"

Now check.

  • open DAB the usual way (DAB should open)
  • make sure the path to the JDK location is correct at Tools > Settings > Code Libraries > JDK Location
    image
  • now do a build to see that it works
1 Like

Thank you both for the help with the environmental variables! I was able to run DAB 5.4 using Amazon Corretto.

Dear @Ian_McQuay,

this was a very helpful writeup. I just did all that. The forum only lets me give you one pink heart, so here are a few more: :purple_heart::purple_heart::purple_heart::purple_heart:

I hesitated, where you had “uninstall all Oracle Java programs” because I had a jre besides my jdk, but I took a deep breath and went ahead.

During the install, the installer offers to create some variables too, which I opted-in to.

Unbenannt

Seems that was needed but not sufficient, since you wrote about “variable for your account” while the installer only did a system variable.

Since my OS runs in German I went to “Edit environment variable” via Windows-button plus Pause-button and then “Erweiterte Systemeinstellungen”; then “Umgebungsvariablen”.

I found that JAVA_HOME was already created for the system, so indeed all I had to add was a user variable for user “me”.

DAB did open, the normal way.

The JDK settings were automagically set. Amazing.

And I have just built a dummy version and it looks great.

So good bye Oracle, hello Amazon I guess.

The most gruesome aspect of this migration was not the tools or the writeup (both awesome) but the fact that I kept thinking and drooling on my keyboard because Corretto just sounds too close to this old favorite from my childhood (but I happen to be on the wrong continent presently):

This is the real Cornetto, all others are copies. :wink:

I will probably get some errors soon about missing jre and I did download a zip file from the same Amazon download page you had linked to. It comes without any installation hints, so will somehow cut that tree when I walk into it. All is well, DAB is Building.

Thank you team - you have my respect for offering such xAB tools to lay people, and being chased around by the big players like Google and Oracle, constantly changing their conditions. I will soon be able to close my other thread about Google requesting privacy declarations too.

Just a hint: If you are doing this on an office computer, used by several users, you only need to install the Corretto tool once.

But setting the environment variable is per user account and needs to be done for every user, otherwise they can see the xAB icon in the Start Menu, but nothing will happen, when they click.

Just sharing, because this just happened here: I installed and tested and all worked fine. And today my team is giving me sad puppy eyes because they wants to makes nices appses too…

So right now I am logging in ten times and I really appreciate that @Ian_McQuay has given us the command line syntax too. hth

We are expecting next week to have an updated version that is Corretto aware so some of these current setup instructions will become redundant.