1

I am just worried that if I build my application with the help of Zulu JDK 13 instead of oracleJDK - will the end user be able to launch my Zulu JDK 13 based app if they have installed JRE from Oracle?

I decided to use Zulu JDK 13 because I heard that oracleJDK from now has to be payed if I want to sell my app to other users.

Jon Heller
  • 31,663
  • 6
  • 63
  • 114
Corey
  • 44
  • 9
  • Probably yes. But you will only know for sure if you (or someone else) tests your application on an Oracle JDK. (Note: Oracle no longer ships JRE installers ... since Java 9.) – Stephen C Jun 22 '20 at 15:43
  • But if you want to **sell** your application, then it as advisable to pay for your own Oracle license. You can recoup it in product sales, assuming that people buy your product. A lot of people won't buy it if you don't support it on Oracle Java. (I don't have a lot of sympathy those who want to develop and sell commercial software and complain about having to pay for the software tools that they use to develop it. TANSTAAFL!) – Stephen C Jun 22 '20 at 15:49
  • The problem is that I am just a student (not in computer science- I am just self-studying how to code) and I don't really have any money that I could spend on the Oracle License at least for now. I would have payed if I had money but I am sorry my financial situation is definetely not so good. I don't really know if my app could become popular or not, but even so I would like to have access to the latest Java version while I build my app. This helps to learn at the same time. – Corey Jun 22 '20 at 16:11
  • 1
    For some background and context, [this discussion](https://stackoverflow.com/questions/52431764/difference-between-openjdk-and-adoptopenjdk) may be helpful. Answers cover a variety of Java providers - there's even a decision flowchart. – andrewjames Jun 22 '20 at 18:06
  • Thank you andrejames. It definetely helps. – Corey Jun 22 '20 at 23:07
  • If you are developing commercial software and trying to sell it to people, AND you are a student without the financial means to do "due diligence" on your product ... then nobody should be buying your code. At least not yet. My advice would be to focus on learning. Yea, certain people have managed to write a "killer application" while studying, but you don't hear about the people who didn't ... and failed their courses at the same time. – Stephen C Jun 23 '20 at 00:56
  • I am assuming that since this is a JVM app, you have researched the market for apps of this nature ... and know who your customers would be, the price point, and what people expect for that kind of price. – Stephen C Jun 23 '20 at 01:01
  • I also noticed that you at not an IT student. That probably means you haven't been taught software engineering principles ... which could present an issue for the quality and maintainability of your product. – Stephen C Jun 23 '20 at 01:05
  • @Stephenc I agree - because I am studying how to code on my own I do lack many software engineering principles. But I am trying my best to follow the high quality advices and maintanability from the professionals. I am trying to follow naming conventions and to break down tasks into much smaller ones. I also try to document properly absolutely every code that I write. I have only a small experience of 2 years coding on my own. Of course, this was mainly trials and errors, everything done was only for the studying purposes. But at this stage I would like to try to develop something public. – Corey Jun 23 '20 at 11:53

1 Answers1

2

If you build your Java app using any implementation of Java 13 that passes the quality tests from Oracle (TCK) and/or the quality tests from Eclipse Adoptium (formerly AdoptOpenJDK) (AQA), then your Java app will run on any other implementation of Java 13 also passing those tests.

You certainly can develop your app on the Zulu JVM from Azul Systems while deploying to your customer’s Oracle JVM from Oracle, as they have both passed quality tests to verify they comply with the Java platform specifications.

I’m addressing the technical angle. You and your customer must also abide by the licensing terms of any Java implementations you obtain.

You also have the option of bundling a JVM within your app, as long as you abide by licensing terms. Research tools such as jlink.

Be aware that Java 13 is end-of-life as far as I know. Consider using the current version 14, or the current LTS version 11.

You have a choice of several vendors offering builds and installers based on source code from the OpenJDK project. Here is a flowchart I made to help guide you in choosing one.

Flowchart guiding you in choosing a vendor for a Java 11 implementation

And here is a list of considerations in choosing a vendor.

enter image description here

You said:

because I heard that oracleJDK from now has to be payed

Do not make important business and technical decisions based on what you "hear". Read the legal terms to which you are agreeing by the download and usage of software such as a Java implementation.

Basil Bourque
  • 218,480
  • 72
  • 657
  • 915
  • what are your criteria for the second image? – Marcin Orlowski Jun 23 '20 at 01:25
  • @MarcinOrlowski Not sure what you mean. Just my own thoughts. The diagram was originally intended for use in a tech talk where I would add more explanation. Adoptium is a cooperative effort backed by all or nearly all of the other vendors, with a wide assortment of offerings, so it is a good place to begin for newbies. Oracle JDK is a good choice for Oracle customers who may already be paying for it. jClarity, acquired by Microsoft, was an original organizer behind Adoptium as I recall. For OpenJ9, Adoptium is the only vendor I know of. – Basil Bourque Jun 23 '20 at 01:50
  • @MarcinOrlowski Corretto by Amazon can be used by anyone, but is meant especially for folks deploying to AWS, where Amazon promises to be using virtually the same thing. Adoptium is the only vendor I know of for the other variants such as Solaris & PowerPC. Some vendors sell support, some do not, so I listed them. Zing and GraalVM are the only two JVMs built for special needs. OpenJFX is bundled by only those two vendors, afaik. The package-managers for BSD and Linux are self-explanatory. For 32-bit variants, those 4 are known to me but there may be others. – Basil Bourque Jun 23 '20 at 01:50
  • @MarcinOrlowski If you have any objections, corrections, or contributions, let me know. – Basil Bourque Jun 23 '20 at 01:53