I am developing in Java 8, REST API, using Spring Date REST and MongoDB on Linux (on Intel 64-bit architecture) for commercial use, for a certain company.

I would like to determine which JVM I can use on the production server for free.

First I thought about ORACLE JVM, but I found the information that:

(...) In case of "General Purpose Computing" you can make use of the software without paying any additional fees; In case of different usage, you are required to pay additional fees towards Oracle. (...)

... and it seems that REST API running on the server is not one of the "General Purpose Computing"...

Do I think right?

In the second place I thought about OpenJDK and this JVM seems to be free to commercial use.

Am I right?

If none of the above two is for free use in commercial applications, can someone recommend me a JVM that is free?

Or maybe the above two JVM's allow their free use in a situation where I need to use it and I don't need to worry about it?

English is not my native language and I'm not fluent in legal rants... I also think that this issue is important to many similar developers... so please help us...

  • 1
    What is your hardware and OS platform? Mac, Windows, BSD, Linux, SPARC Solaris, etc.? Sep 23, 2017 at 16:22
  • I work on Linux Sep 23, 2017 at 18:06
  • 1
    Linux on AMD64? Please edit your Question to provide this info, rather than posting as comments. Sep 23, 2017 at 20:36

1 Answer 1


Oracle license

While I am not an attorney, my understanding is that the Oracle license suits your purpose. Running a Servlet container like Tomcat for serving Web & REST requests on a common server machine (or cloud instance such as DigitalOcean.com) falls within their intention for "General Purpose Computing".

Their "different usage" refers to things like embedding in phones, cash registers, TiVo type boxes, etc., where Oracle might demand a fee.

CAVEAT Beware that Oracle bundles at least one monitoring tool that is not free-of-cost. Read their documentation.

OpenJDK to gain parity

Note that Oracle recently announced that the JDK will move to open-source with a GPL license.

Oracle has committed to donating the last pieces of Java code to the OpenJDK, and are even open-sourcing and donating their monitoring tools for Java (mentioned above) to the OpenJDK project.

Oracle said explicitly that they intend for the functional differences between the Oracle implementation and the OpenJDK implementation to evaporate in the coming months. So in the future we will be able to use the OpenJDK directly in place of the Oracle-branded product we so often use today.

By the way, note that starting next year, the cadence of Java releases changes to become much more rapid:

  • Twice yearly feature releases.
  • Quarterly update releases.
  • Long-term support (LTS) version to be regularly updated for three years.

Other implementations

See Wikipedia for a list of Java implementations.


In particular I would consider Zulu by Azul Systems, a build of OpenJDK. They also sell JVM products with advanced features.

For your needs, see their Zulu Linux page. They already have a release based on OpenJDK 9.0.0.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.