Differences between Oracle JDK and OpenJDK
Asked Answered
T

13

825

NOTE: This question is from 2014. As of Java 11 OpenJDK and Oracle JDK are converging.

Are there any crucial differences between Oracle and OpenJDK?

For example, are the garbage collection and other JVM parameters the same?

Does GC work differently between the two?

Tagmemics answered 12/3, 2014 at 16:36 Comment(2)
This might also be relevant if you're planning on moving from Oracle to OpenJDK since Oracle isn't free anymore. developers.redhat.com/blog/2018/11/05/…Kleper
Found a better answer: https://mcmap.net/q/55074/-what-is-the-reason-to-use-openjdkSeeley
B
429

Both OpenJDK and Oracle JDK are created and maintained currently by Oracle only.

OpenJDK and Oracle JDK are implementations of the same Java specification passed the TCK (Java Technology Certification Kit).

Most of the vendors of JDK are written on top of OpenJDK by doing a few tweaks to [mostly to replace licensed proprietary parts / replace with more high-performance items that only work on specific OS] components without breaking the TCK compatibility.

Many vendors implemented the Java specification and got TCK passed. For example, IBM J9, Azul Zulu, Azul Zing, and Oracle JDK.

Almost every existing JDK is derived from OpenJDK.

As suggested by many, licensing is a change between JDKs.

Starting with JDK 11 accessing the long time support Oracle JDK/Java SE will now require a commercial license. You should now pay attention to which JDK you're installing as Oracle JDK without subscription could stop working. source

Ref: List of Java virtual machines

Braces answered 31/7, 2016 at 16:11 Comment(12)
So your saying that openjdk is the baseline for all the other jdks just that they copy it and then tweak it after it's own specifications?Gipson
I'm late to the party, but I'll ask anyway. What does jdk bring to the table that openjdk doesn't? All these answers make openjdk sound like it's equal to or superior in every way, but if that's the case why does Oracle even bother maintaining jdk?Kapellmeister
@ Karl Morrison As far I know,.. everyone implementing JVM spec doing that way only.. but there is no explicit rule that one has to follow that way...Braces
@ Mella OpenJDK <= OracleJDK For example, Oracle JDK has Few trusted keys set up, which were not in OpenJDK(Now a days people are just importing them to fill this gap) Oracle JDK has some SWING libraries which are proprietory for speeding up rendering..(Who ever doing server apps, might be irrelevant for them) Oracle JDK has Applet plugin (Same reason above works) Oracle JDK bugfix/hotfix would be distributed and handle properly by Oracle where As OpenJDK it is little technical to ensure all the patches are applied and what conflict they would haveBraces
Note with the new release model for java, Oracle plans to reduce the gap as much as possible between both jdk's. Are there other open source contributors to open jdk other than oracle developers? This is to understand if there would be enough support to backport a fix from the latest version to the previous version. Any thoughts?Shelton
@Andy yes, there are OpenJDK contributors outside Oracle, and some are involved in backporting fixes to older releases. In fact OpenJDK 6 and 7 are officially maintained by Red Hat, not Oracle.Evangelicalism
@StephenKitt - I am not sure if I follow you completely. Are you saying that OpenJDK 9 would get security/bug fixes post JDK 10 release? I really doubt that. Also I understand that OpenJDK is managed by Oracle while AdoptOpenJDK is the one that is managed by multiple sponsors including Oracle, IBM etc. Even AdoptOpenJDK builds too would not be supported for more than 6 months except LTS releases like JDK 8 & 11.Shelton
@Andy now I’m not sure I’m following you either. You asked “Are there other open source contributors to open jdk other than oracle developers?” and the answer to that is yes. You qualified your question with “This is to understand if there would be enough support to backport a fix from the latest version to the previous version.” and the answer there is also yes. I didn’t comment on any specific version other than 6 and 7. As you say, I wouldn’t expect 9 and 10 to receive extended support anywhere but there’s nothing preventing motivated third-parties from providing it if they choose to.Evangelicalism
@Mella OpenJDK has GC's like Serial, Parallel, CMS and G1 and recently experimental ZGC. Azul has it's own C4, which said to be pauseless.. Ref: opsian.com/blog/javas-new-zgc-is-very-excitingBraces
@VenkateswaraRao isn’t there performance differences between the 2 jre? I read for example that the open source version doesn’t use the additional registers the x86_64 provide for jit (or rather not through assembly) unlike the version given by Oracle.Ayakoayala
@Ayakoayala There seems to be few additional behaviors added to the same. But this is just small part and does not seem to be considerable difference in performance as of now.Braces
"Oracle JDK without subscription could stop working" - I see no evidence of this. The question of JDK expiration in the Java 8u space has been talked about in various places. There are different descriptions of what JDK/JRE 'expiration' means. From giving warnings when an app starts to nothing at all. This thing about a JDK/JRE just stopping to work after expiration is FUD, there is no evidence for it.Wadewadell
S
347

For Java 7, nothing crucial. The OpenJDK project is mostly based on HotSpot source code donated by Sun.

Moreover, OpenJDK was selected to be the reference implementation for Java 7 and is maintained by Oracle engineers.

There's a more detailed answer from 2012 on difference between JVM, JDK, JRE & OpenJDK, which links to an Oracle blog post:

Q: What is the difference between the source code found in the OpenJDK repository, and the code you use to build the Oracle JDK?

A: It is very close - our build process for Oracle JDK releases builds on OpenJDK 7 by adding just a couple of pieces, like the deployment code, which includes Oracle's implementation of the Java Plugin and Java WebStart, as well as some closed source third party components like a graphics rasterizer, some open source third party components, like Rhino, and a few bits and pieces here and there, like additional documentation or third party fonts. Moving forward, our intent is to open source all pieces of the Oracle JDK except those that we consider commercial features such as JRockit Mission Control (not yet available in Oracle JDK), and replace encumbered third party components with open source alternatives to achieve closer parity between the code bases.

Shandrashandrydan answered 12/3, 2014 at 16:43 Comment(11)
Also there are licensing differences.Rasia
thanks i found a better answer. #17360511Severson
On ARM at least those two seem to be significantly different in performance. I would have to do some profiling on why it is happening, but the subjective difference is "Oracle JDK is ok" and "OpenJDK is completely unusable".Amen
@Shandrashandrydan So why does not Oracle only use Open JDK and on top deliver the closed-source. Thus only one JDK.Manouch
@Manouch - it is very much what theyre doing. except for specific corner cases dealing with copyright (in the encryption subsystem) or enterprise features (see oracle flight recorder and mission control) they are the exact same code base. see a good example here technfun.wordpress.com/2013/01/18/…Shandrashandrydan
@Amen nevertheless android is moving to openjdk starting from android 7. Looks like they are prepairing significant improvements. venturebeat.com/2015/12/29/…Toney
@JohnnyDoe Lets hope that if google is moving to OpenJDK, they will provide upstream with performance patches so that it runs well on ARM outside of Android as well!Amen
and openjdk maintains powerpcLinettelineup
@JohnnyDoe they are moving because of the biiig lawsuit Oracle vs Google. They don't want to pay licenses.Brote
@Amen Android uses it's own implementation of the Java virtual machine called Dalvik (which uses the ART ahead-of-time compiler in android M). Google will be changing the API from the Oracle to the OpenJDK one (API != implementation). Although OP asked for difference "in sources" which is ambiguous, I suspect he meant difference in the implementation. Therefore, you are wrong, since Dalvik VM is a completely different beast from the OpenJDK implementation (or the Oracle one). Also, when you say ARM, which version of the architecture are you referring to?Kenosis
@Kenosis actually Dalvik is EOL new one is ART and Dalvik never had AOT only ART has it, the venturebeat article specifically mentions that Google had their own API implementation, NOT Oracle and that they are moving to OpenJDK from their code though I CBA to verify the truth of this. Anyway I can't see where I even can be wrong, I stated a subjective observation and hope - nothing more, both is intrinsically true.Amen
V
113

A key difference going forward is the release schedule and support policy.

OpenJDK

OpenJDK will have a feature release every 6 months which is only supported until the next feature release. It's essentially a continuous stream of releases targeted to developers.

Oracle JDK

The Oracle JDK is targeted more towards an enterprise audience which values stability. It's based on one of the OpenJDK releases but is then given long term support (LTS). The Oracle JDK has releases planned every 3 years.

enter image description here

Source: https://www.oracle.com/java/java9-screencasts.html?bcid=5582439790001&playerType=single-social&size=events

Viv answered 9/2, 2018 at 21:7 Comment(3)
Long term releases require you to buy commercial support to get updates after 6 months of the java release. What is the significance of long term releases when compared with short term releases? Do short term releases like JDK 9/10 do not have commercial support from Oracle?Shelton
@AndyDufresne why do you think you will have to pay for support after only 6 months? My understanding is that the timeline is TBD. 6 month seems awfully short though... I doubt we can expect public updates for 5 years, like Java 8 is getting, but I wouldn't be surprised if there were public updates for 2 or 3 years. Reference - This is per: oracle.com/technetwork/java/eol-135779.html.Viv
The oracle link mentions "For e.g, the LTS release for Oracle JDK 11 (18.9 LTS) will be supported for at least 5 years as described in the Oracle Lifetime Support Policy". The policy has 3 levels of support none of them look to be free. Also I mention this after looking at azul CTO's comment here - blog.takipi.com/java-11-will-include-more-than-just-features/…. The main goal of this new release strategy is to not spend time in maintaining old releases. If the support were free the model would be the same as it has been till now.Shelton
C
48

For Java 8, Oracle JDK vs. OpenJDK my take of key differences:

  • OpenJDK is an open source implementation of the Java Standard Edition platform with contribution from Oracle and the open Java community.

  • OpenJDK is released under license GPL v2 wherein Oracle JDK is licensed under Oracle Binary Code License Agreement.

  • Actually, Oracle JDK’s build process builds from OpenJDK source code. So there is no major technical difference between Oracle JDK and OpenJDK. Apart from the base code, Oracle JDK includes, Oracle’s implementation of Java Plugin and Java WebStart. It also includes third-party closed source and open source components like graphics rasterizer and Rhino respectively. OpenJDK Font Renderer and Oracle JDK Flight Recorder are the noticeable major differences between Oracle JDK and OpenJDK.

  • Rockit was the Oracle’s JVM and from Java SE 7, HotSpot and JRockit merged into a single JVM. So now we have only the merged HotSpot JVM available.
  • There are instances where people claim that they had issues while running OpenJDK and that got solved when switched over to Oracle JDK.
  • Twitter has its own JDK.
  • Software like Minecraft expects Oracle JDK to be used. In fact, warns.

For a full list of differences please see the source article: Oracle JDK vs OpenJDK and Java JDK Development Process

Crosstree answered 13/7, 2017 at 10:58 Comment(2)
For Android Studio, this is no longer true: A copy of the latest OpenJDK comes bundled with Android Studio 2.2 and higher, and this is the JDK version we recommend you use for your Android projects. Source: developer.android.com/studio/intro/studio-config#jdkSmilax
“Software like Minecraft expects Oracle JDK to be used. In fact, warns.” Actually, in Ubuntu, Mojang’s official .deb installer pulls in OpenJDK when installing the launcher.Octan
C
37

The Oracle and OpenJDK JVMs are the same and have the same GC features (as of the latest versions 10+). Prior to Oracle managing the OpenJDK JVM there were concrete differences that made that old Openjdk JVM almost unusable in many environments. The JVMs are now the same.

The JDKs which include the JVM as part of the Kit, differ by licensing, release and maintenance schedule, and the software libraries included in the JDK. Crucial differences to me also mean things that would make code not run if not present. Not only licensing.

diff --brief -r openjdk oraclejdk

Crucially the following files are missing in addition to a bunch of others on the linux JDK (So if you 'claimed' that code didn't work on OpenJDK and did so on OracleJDK while you were using javafx then you were correct):

Only in jdk-10.0.1/bin: javapackager
Only in jdk-10.0.1/bin: javaws
Only in jdk-10.0.1/bin: jcontrol
Only in jdk-10.0.1/bin: jmc
Only in jdk-10.0.1/bin: jweblauncher
Only in jdk-10.0.1/lib: ant-javafx.jar
Only in jdk-10.0.1/lib: deploy
Only in jdk-10.0.1/lib: deploy.jar
Only in jdk-10.0.1/lib: desktop
Only in jdk-10.0.1/lib: fontconfig.bfc
Only in jdk-10.0.1/lib: fontconfig.properties.src
Only in jdk-10.0.1/lib: fontconfig.RedHat.6.bfc
Only in jdk-10.0.1/lib: fontconfig.RedHat.6.properties.src
Only in jdk-10.0.1/lib: fontconfig.SuSE.11.bfc
Only in jdk-10.0.1/lib: fontconfig.SuSE.11.properties.src
Only in jdk-10.0.1/lib: fonts
Only in jdk-10.0.1/lib: javafx.properties
Only in jdk-10.0.1/lib: javafx-swt.jar
Only in jdk-10.0.1/lib: java.jnlp.jar
Only in jdk-10.0.1/lib: javaws.jar
Only in jdk-10.0.1/lib: jdk.deploy.jar
Only in jdk-10.0.1/lib: jdk.javaws.jar
Only in jdk-10.0.1/lib: jdk.plugin.jar
Only in jdk-10.0.1/lib: jfr
Only in jdk-10.0.1/lib: libavplugin-53.so
Only in jdk-10.0.1/lib: libavplugin-54.so
Only in jdk-10.0.1/lib: libavplugin-55.so
Only in jdk-10.0.1/lib: libavplugin-56.so
Only in jdk-10.0.1/lib: libavplugin-57.so
Only in jdk-10.0.1/lib: libavplugin-ffmpeg-56.so
Only in jdk-10.0.1/lib: libavplugin-ffmpeg-57.so
Only in jdk-10.0.1/lib: libbci.so
Only in jdk-10.0.1/lib: libcmm.so
Only in jdk-10.0.1/lib: libdecora_sse.so
Only in jdk-10.0.1/lib: libdeploy.so
Only in jdk-10.0.1/lib: libfxplugins.so
Only in jdk-10.0.1/lib: libglassgtk2.so
Only in jdk-10.0.1/lib: libglassgtk3.so
Only in jdk-10.0.1/lib: libglass.so
Only in jdk-10.0.1/lib: libgstreamer-lite.so
Only in jdk-10.0.1/lib: libjavafx_font_freetype.so
Only in jdk-10.0.1/lib: libjavafx_font_pango.so
Only in jdk-10.0.1/lib: libjavafx_font.so
Only in jdk-10.0.1/lib: libjavafx_iio.so
Only in jdk-10.0.1/lib: libjfxmedia.so
Only in jdk-10.0.1/lib: libjfxwebkit.so
Only in jdk-10.0.1/lib: libnpjp2.so
Only in jdk-10.0.1/lib: libprism_common.so
Only in jdk-10.0.1/lib: libprism_es2.so
Only in jdk-10.0.1/lib: libprism_sw.so
Only in jdk-10.0.1/lib: librm.so
Only in jdk-10.0.1/lib: libt2k.so
Only in jdk-10.0.1/lib: locale
Only in jdk-10.0.1/lib: missioncontrol
Only in jdk-10.0.1/lib: oblique-fonts
Only in jdk-10.0.1/lib: plugin.jar
Only in jdk-10.0.1/lib: plugin-legacy.jar
Only in jdk-10.0.1/lib/security: blacklist
Only in jdk-10.0.1/lib/security: public_suffix_list.dat
Only in jdk-10.0.1/lib/security: trusted.libraries
Only in openjdk-10.0.1: man`
Clydeclydebank answered 15/8, 2018 at 19:49 Comment(1)
Thank you for pointing at the real differences: code not running is a real-life matter. From where did you base your diff on?Phatic
B
26

According to the oracle blog, Oracle JDK Releases for Java 11 and Later

Starting with Java 11, Oracle will provide JDK releases under the open source GNU General Public License v2, with the Classpath Exception (GPLv2+CPE), and under a commercial license for those using the Oracle JDK as part of an Oracle product or service, or who do not wish to use open source software. This combination of using an open source license and a commercial license replaces the historical “BCL” license, which had a combination of free and paid commercial terms.

Different builds will be provided for each license, but these builds are functionally identical aside from some cosmetic and packaging differences, described in detail below.

From the BCL to the GPL

The Binary Code License for Oracle Java SE technologies (“BCL”) has been the primary license for Oracle Java SE technologies for well over a decade. The BCL permits use without license fees under certain conditions. To simplify things going forward, Oracle started providing open source licensed OpenJDK builds as of Java 9, using the same license model as the Linux platform. If you are used to getting Oracle Java SE binaries for free, you can simply continue doing so with Oracle’s OpenJDK builds available at jdk.java.net. If you are used to getting Oracle Java SE binaries as part of a commercial product or service from Oracle, then you can continue to get Oracle JDK releases through My Oracle Support (MOS), and other locations.

Functionally identical and interchangeable...

Oracle’s BCL-licensed JDK historically contained “commercial features” that were not available in OpenJDK builds. As promised, however, over the past year Oracle has contributed these features to the OpenJDK Community, including:

From Java 11 forward, therefore, Oracle JDK builds and OpenJDK builds will be essentially identical.

...yet with some cosmetic and packaging differences

There do remain a small number of differences, some intentional and cosmetic, and some simply because more time to discuss with OpenJDK contributors is warranted.

  • Oracle JDK 11 emits a warning when using the -XX:+UnlockCommercialFeatures option, whereas in OpenJDK builds this option results in an error. This option was never part of OpenJDK and it would not make sense to add it now, since there are no commercial features in OpenJDK. This difference remains in order to make it easier for users of Oracle JDK 10 and earlier releases to migrate to Oracle JDK 11 and later.
  • Oracle JDK 11 can be configured to provide usage log data to the “Advanced Management Console” tool, which is a separate commercial Oracle product. We will work with other OpenJDK contributors to discuss how such usage data may be useful in OpenJDK in future releases, if at all. This difference remains primarily to provide a consistent experience to Oracle customers until such decisions are made.
  • The javac --release command behaves differently for the Java 9 and Java 10 targets, since in those releases the Oracle JDK contained some additional modules that were not part of corresponding OpenJDK releases:
    • javafx.base
    • javafx.controls
    • javafx.fxml
    • javafx.graphics
    • javafx.media
    • javafx.web
    • java.jnlp
    • jdk.jfr
    • jdk.management.cmm
    • jdk.management.jfr
    • jdk.management.resource
    • jdk.packager.services
    • jdk.snmp

This difference remains in order to provide a consistent experience for specific kinds of legacy use. These modules are either now available separately as part of OpenJFX, are now in both OpenJDK and the Oracle JDK because they were commercial features which Oracle contributed to OpenJDK (e.g., Flight Recorder), or were removed from Oracle JDK 11 (e.g., JNLP).

  • The output of the java --version and java -fullversion commands will distinguish Oracle JDK builds from OpenJDK builds, so that support teams can diagnose any issues that may exist. Specifically, running java --version with an Oracle JDK 11 build results in:

java 11 2018-09-25

Java(TM) SE Runtime Environment 18.9 (build 11+28)

Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11+28, mixed mode)

And for an OpenJDK 11 build:

openjdk version "11" 2018-09-25

OpenJDK Runtime Environment 18.9 (build 11+28)

OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

  • The Oracle JDK has always required third party cryptographic providers to be signed by a known certificate. The cryptography framework in OpenJDK has an open cryptographic interface, meaning it does not restrict which providers can be used. Oracle JDK 11 will continue to require a valid signature, and Oracle OpenJDK builds will continue to allow the use of either a valid signature or unsigned third party crypto provider.
  • Oracle JDK 11 will continue to include installers, branding and JRE packaging for an experience consistent with legacy desktop uses. Oracle OpenJDK builds are currently available as zip and tar.gz files, while alternative distribution formats are being considered.
Backhander answered 12/12, 2018 at 18:28 Comment(0)
A
17
  1. Oracle will deliver releases every three years, while OpenJDK will be released every six months.
  2. Oracle provides long term support for its releases. On the other hand, OpenJDK supports the changes to a release only until the next version is released.
  3. Oracle JDK was licensed under Oracle Binary Code License Agreement, whereas OpenJDK has the GNU General Public License (GNU GPL) version 2 with a linking exception.
  4. Oracle product has Flight Recorder, Java Mission Control, and Application Class-Data Sharing features, while OpenJDK has the Font Renderer feature.Also, Oracle has more Garbage Collection options and better renderers,
  5. Oracle JDK is fully developed by Oracle Corporation whereas the OpenJDK is developed by Oracle, OpenJDK, and the Java Community. However, the top-notch companies like Red Hat, Azul Systems, IBM, Apple Inc., SAP AG also take an active part in its development.

From Java 11 turn to a big change

Oracle will change its historical “BCL” license with a combination of an open source and commercial license

  • Oracle’s kit for Java 11 emits a warning when using the -XX:+UnlockCommercialFeatures option, whereas in OpenJDK builds, this option results in an error
  • Oracle JDK offers a configuration to provide usage log data to the “Advanced Management Console” tool
  • Oracle has always required third party cryptographic providers to be signed by a known certificate, while cryptography framework in OpenJDK has an open cryptographic interface, which means there is no restriction as to which providers can be used
  • Oracle JDK 11 will continue to include installers, branding, and JRE packaging, whereas OpenJDK builds are currently available as zip and tar.gz files
  • The javac –release command behaves differently for the Java 9 and Java 10 targets due to the presence of some additional modules in Oracle’s release
  • The output of the java –version and java -fullversion commands will distinguish Oracle’s builds from OpenJDK builds


Update : 25-Aug-2019



enter image description here

for more details oracle-vs-openjdk

Adjudicate answered 22/7, 2019 at 6:32 Comment(2)
technology.amis.nl/2018/11/23/…Thalamus
Maybe you could put the information of the image here as a table instead? It takes on a lot of screen estate, and isn't really screen reader friendly. Also, the logo under Development being misaligned is bothering me a lot.Assagai
S
11

A list of the few remaining cosmetic and packaging differences between Oracle JDK 11 and OpenJDK 11 can be found in this blog post:

https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later

In short:

  • Oracle JDK 11 emits a warning when using the -XX:+UnlockCommercialFeatures option,
  • it can be configured to provide usage log data to the “Advanced Management Console” tool,
  • it has always required third party cryptographic providers to be signed by a known certificate,
  • it will continue to include installers, branding and JRE packaging,
  • while the javac --release command behaves slightly differently for the Java 9 and Java 10 targets, and
  • the output of the java --version and java -fullversion commands will distinguish Oracle JDK builds from OpenJDK builds.
Synergism answered 13/9, 2018 at 9:48 Comment(1)
I noticed that most of your answers had a signature in them. I have edited them out. Please read Are taglines & signatures disallowed? and stackoverflow.com/help/behavior (specifically section "Do not use signature, taglines, or greetings.")Pleinair
P
9

Aside from the obvious licensing difference, the major difference between OpenJDK and OracleJDK 11 are stability and performance updates.

Source: https://www.youtube.com/watch?v=Adv9--6IcQI&t=385

Every 6 months the two codebases will be in-sync. But during the 6 month window OpenJDK will only receive security updates while OracleJDK will receive additional stability and performance updates.

Given that update releases only occur every 3 months for both OpenJDK and OracleJDK this means that you are missing out on (at most) 3 months worth of fixes until the next major release comes out and you upgrade. However, if you choose to stick to LTS releases then a commercial license begins to make more sense.

Pusillanimity answered 28/12, 2018 at 17:3 Comment(0)
A
6

Also for Java 8 an interesting performance benchmark for reactive (non-blocking) Spring Boot REST application being hosted on various JVMs by AMIS Technology Blog has been published in Nov 2018 showing that, among other differences:

  • OpenJDK has higher CPU usage than OracleJDK,
  • OpenJDK has slightly lower response time than OracleJDK,
  • OpenJDK has higher memory usage than OracleJDK,

For details please see the source article.

Of course YMMV, this is just one of the benchmarks.

Annikaanniken answered 22/12, 2018 at 20:46 Comment(0)
I
5

OpenJDK

  • OpenJDK is opened source code, it is maintained and developed by Oracle, but allows communities and other companies to participate in this development, such as Red Hat, Azul Systems, IBM, Apple Inc, etc. OpenJDK is both a JDK product and a specification, any company or organization that wants to use OpenJDK to create a new variant must comply with those specifications. OpenJDK is developed by Oracle and the community contributions. We sometimes have issues on its stability; however, based on user feedback, it will be upgraded to perform better. OpenJDK is regularly updated, around every 6 months.

Oracle JDK

  • Oracle JDK is maintained and developed by Oracle. It complies with OpenJDK specifications, but it is not opened source code. Oracle JDK is much better in terms of the JVM responsiveness and productivity. It focuses more on the stability due to its importance to the corporate customers.

Source: https://o7planning.org/12571/history-of-java-and-the-difference-between-oracle-jdk-and-openjdk

Ilbert answered 26/6, 2021 at 9:21 Comment(0)
S
2

My understanding is that Oracle JDK can't be used in production, therefore I cannot legally use it (without paying), for the web application I am building for my company. I have to use OpenJDK. Please correct me if I am wrong! From this article.

Starting with Java 11, the Oracle JDK is restricted to development and testing environments. Oracle JDKs may only be used in production if you buy the commercial support. Instead, Oracle will provide Java builds based on OpenJDK for free which can be used in production. But for the official Oracle JDK the real roadmap will look like this:

UPDATE: I'm wrong. I can use Oracle JDK for free but won't get security updates after 6 mos and we'll have to assume the risk. Look at the above linked article section "What does the new release train mean to my company?".

Squarerigger answered 10/9, 2019 at 15:8 Comment(2)
This may no longer be true as of JDK 13. There is a new license for Oracle JDK, according to Oracle: "The new license permits certain uses, such as personal use and development use, at no cost -- but other uses authorized under prior Oracle JDK licenses may no longer be available" . See oracle.com/downloads/licenses/javase-license1.html.Streetlight
Just wanted to know, Current release of oracle jdk8u241 is free for production use ?Janicejanicki
H
0

It is very close - our build process for Oracle JDK releases builds on OpenJDK 7 by adding just a couple of pieces, like the deployment code, which includes Oracle's implementation of the Java Plugin and Java WebStart, as well as some closed source third-party components like a graphics rasterizer, some open-source third party components, like Rhino, and a few bits and pieces here and there, like additional documentation or third-party fonts. Moving forward, we intend to open source all pieces of the Oracle JDK except those that we consider commercial features such as JRockit Mission Control (not yet available in Oracle JDK) and replace encumbered third-party components with open source alternatives to achieve closer parity between the codebases.

· Yes, the garbage collection and other JVM parameters are the same.

· The performance of GC is the same in both.

Hardiness answered 14/12, 2020 at 9:32 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.