Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
I wanted to install JDK 9 on my machine, visited JDK official download page, and was surprised to see,
Java SE 9 has reached end of support. Users of Java SE 9 should switch to Java SE 10. Please visit our Java SE Downloads page to get the current version of Java SE. You will be redirected to the Java SE Downloads page in ... seconds. Please update your bookmarks to the Java SE Downloads page.
I did some googling and Java release history etc. But couldn't find any concrete reason.
I have couple of questions-
Oracle is still supporting the JDK 1.8, but stopped releasing updates to JDK 9, why?
Should I continue using JDK 1.8 for some time and then directly switch to JDK 10?
In the past, Java major releases often tended to be loaded with far-reaching features that had a massive impact on the code that you could and should write, like generics (Java 5) and functional constructs (Java 8).
With Java 9 Oracle introduced a new modularization system (project Jigsaw), that also has a massive impact on the JVM architecture (although, not so much on the language syntax). They had to postpone the release of Java 9 two times because of disagreements on the implementation of that feature with other influential members of the Java community.
Presumably drawing a lesson from this, Oracle decided to overhaul the development style for Java to be more incremental or "agile", if you like. Instead of having feature loaded major releases that can sometimes take many years to finish, they want to publish major releases with less new features each in a fixed release schedule every six months.
Java 9 and Java 10 are the first two versions scheduled with this new release model and Java 9 already got deprecated with the release of Java 10. Java 11, which was released in September 2018 is a Long Term Support (LTS) release with support until 2026. This is very similar to what many are used to from the Ubuntu release model (On a side note, they even planned to replace the version numbers with something involving the year and month of release or so, similar to what Canonical is doing with Ubuntu, but dropped that idea for some reason).
Using a non-LTS version of Java now implies a commitment to update your software that uses the JDK every 6 month. It shouldn't be as involved as migrating code from one major Java version to another in the past because, as described, the language changes are supposed to happen in a more incremental way, but it's definitely something to consider. If you don't want to make this commitment, you should stick to the LTS versions, which means to stick with Java 8 or Java 11.
For a new "greenfield" project, Java 11 is most probably the best choice by now. But it might be necessary to stick with Java 8 if the toolchain to be used does not fully support Java 11 yet.
Apparently in the future Oracle wants to release a LTS version every three years or every 6th release, so the next LTS release to be expected after Java 11 is Java 17 in September 2021.
Oracle transitioned to timeboxed releases. This means you will get a new Java release every 3 months, and a long term release every few years.
The Long Term Releases are expected to be supported for 3 years after the next release, so I wouldn't expect a new LTS release until some time late 2019 or early 2020, as December 2020 is the end of support for JDK 8.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I am getting confused by the new short release cycle paradigma of Oracle. Here is a table with support dates:
Java 8 has a bigger support window than most of the following Jdk. Java 9 is supposed to be End of support now, same for java 10.
It becomes a non trivial task deciding on a jdk version.
Oracle introduces the therm of Long therm support release. What does this mean for the Non-LTS versions ? Are they similar to the minor releases ?
In the past, Java major releases often tended to be loaded with far-reaching features that had a massive impact on the code that you could and should write, like generics (Java 5), functional constructs (Java 8), and modules (Java 9). Such releases took a long time, and often involved delays for various reasons.
Presumably drawing a lesson from this, Oracle decided to overhaul the development style for Java to be more incremental or "agile", if you like. Instead of having feature-loaded major releases that can sometimes take many years to finish, they want to publish major releases with fewer new features, each in a fixed release schedule every six months.
Java 10 was the first version under this new release model, and Java 9 already got deprecated with the release of Java 10. Java 11, which was released in September 2018 is a Long Term Support (LTS) release with support until 2026 (Source). This is very similar to what many are used to from the Ubuntu release model (On a side note, they even planned to replace the version numbers with something involving the year and month of release or so, similar to what Canonical is doing with Ubuntu, but dropped that idea for some reason).
Using a non-LTS version of Java now implies a commitment to update your software that uses the JDK every 6 month. It shouldn't be as involved as migrating code from one major Java version to another in the past because, as described, the language changes are supposed to happen in a more incremental way, but it's definitely something to consider. If you don't want to make this commitment, you should stick to the LTS versions, which means to stick with Java 8 or Java 11.
For a new "greenfield" project, Java 11 is most probably the best choice by now. But it might be necessary to stick with Java 8 if the toolchain to be used does not fully support Java 11 yet.
I hope this will help.
If you can upgrade to the latest JDK every six month, pick the latest version. Otherwise pick the LTS version; if the next LTS is going to be released soon (before your release date), then you might want to use the latest version and switch to the LTS before your release.
Also, Oracle JDK is now (since 11) fully based on the OpenJDK project, so any OpenJDK build from your favorite vendor might be just as good a choice for you as Oracle JDK -- or even better.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
why do people use Azul’s Zulu 9.0.0.15 release of OpenJDK instead of JDK downloaded from oracle.com? I came across this OpenJDK in the Effective java book and haven't tried this open jdk before. Is this because Oracle made the JDK commercial?
why do people use Azul’s Zulu 9.0.0.15 release of OpenJDK instead of JDK downloaded from oracle.com?
In short, there is no version of Java 9 freely supported by Oracle. You can download the last free version from Oracle.
From March 2019, Oracle will only give free support for Java 12 (for 6 months). Oracle will provide free support for the latest version for the first 6 months of release.
However, there are other organisations, like Azul, which provide commercially supported releases from Java 8. To get Oracle's supported releases you need to pay a subscription.
Other organisations such as AdoptJDK and RedHat have their own releases.
For more information
https://www.oracle.com/technetwork/java/javase/tech/eol-135779.html
Is this because Oracle made the JDK commercial?
The OpenJDK has been around since Java 6, but there were some differences and not a strong reason for many to shift versions.
From Java 11, the main difference between OpenJDK and Oracle Java 11 is the installer.
Hopefully, we will see more companies paying for support for the products they rely on to help make money, but also see a variety of options for free use in a secure way.
There are a few OpenJDK's out there.
The official Open JDK and Oracle's JDK are based on the same code but have different licensing models.
The main reason for creating them was to tweak some parts of the code to better handle a part of the API that you think should work differently.
For example, let's say you are a company that uses JAVA and notices that some part of the API works to slowly for your needs. You then can try to improve it and submit it to be part of the Oracle OpenJDK. But it could be rejected or the time it takes for it to be approved takes too long. You might opt to just branch the OpenJDK to make your own version.
At the moment Oracle is going to stop giving its own implementation of the JDK for free but it its version of OpenJDK will remain open and free.
If you read here you will see that Zulu too is just OpenJDK certified and promised to be maintained.
My guess is that the company is just using OpenJDK to give better service to its subscribers so they will get notified when new fixes and patches become available to the general public.
I don't think they change anything in the JDK but just create custom delivery tools around it.
There will be no free LTS release from Oracle as of JDK 11 and that JDK 8 public updates (for commercial users) end in Jan 2019; we are seeing a lot of interest in Zulu.
Here is what is Oracle have announced.
There are now two binaries available from Oracle: the traditional
Oracle JDK (java.oracle.com) which is provided under the Oracle Binary
Code License (with field-of-use restrictions). There is also now an
OpenJDK binary (jdk.java.net) released under the GPLv2 with CPE
license.
As of JDK 11, the Oracle JDK will still be available for download and can be used in development and testing for free. If you want to deploy it into production, you will need a commercial support contract with Oracle. The OpenJDK binaries are free, but every release (including those Oracle designate LTS) will only have updates available for six months (until the next JDK release).
https://youtu.be/YauqubC8FKM?t=1281
I wanted to try some of the features provided by the java SE 9 (Module System Quick-Start Guide) http://openjdk.java.net/projects/jigsaw/quick-start, when I try to download Java SE 9 jdk I get this statement "Java SE 9 has reached end of support. Users of Java SE 9 should switch to Java SE 10" why is that so, and should I step away from java 9? can someone give me a technical explanation. Thanks
For starters, Java 9 is no longer getting patched and there's at least one significant bug which will never be fixed. The new Java release cycle means that long-term support will not be given to every release. If you want a stable platform, you must either migrate to Java 10, and then to Java 11 when it's available (which will receive long-term support), or remain on Java 8.
Also var is cool.
Because the "service" model for Java has changed significantly (see the Oracle guidance document for example).
There are specific "long term services" releases (the first one will be Java 11).
All other releases are only supported for a limited amount of time (think: the release of the next Java version, plus some courtesy time).
Of course, that is (kind of) the "production environment" answer. When doing a bit of Java development on the side, there is no pressing reason to move on. On the other hand, when you are using some JDK for "education purposes", then you should simply go forward with each new Java version, simply to be able to learn what "latest greatest" Java has to offer.
why is that so, and should I step away from java 9? can someone give me a technical explanation.
The technical reason for the advice is that since it has been EOL'd Java 9 will not receive any more bug fixes or security patches. (Unless you are prepared to pay for a commercial support contract.) See the Oracle Java SE Support Roadmap.
It is up to you to decide whether that is relevant. (It will depend on whether you will be affected by un-fixed bugs ... and that is hard to predict. But you could track the release notes for the Java 10.0.x releases as the come out to see what fixes you may be missing.)
I will be making a Java application using Java FX. I want to use SE8, but I'm concerned that Java FX isn't as usable in SE8 as SE7; has anyone used Java FX in SE8 and can confirm that it isn't buggy or difficult to use? Thanks, I don't want to have to switch platforms in the middle if it gets messy!
Review the answer to: Is there a JavaFX 8 changelog?
Then decide for yourself if you would rather use Java 7 or Java 8, given that:
Many bugs in the JavaFX implementation in Java 7 were fixed in Java 8.
Many features were added to JavaFX in Java 8 which are not present in Java 7.
Numerous architectural performance improvements were implemented for Java 8.
The currently scheduled date for end of public updates for Java 7 is April, 2015.
The JavaFX project developers rarely backport bug fixes from the Java 8 branch to earlier branches.
Is JavaFX in Java 8 bug free? => No.
The Java 8u20 update release will include many (mostly minor) bug fixes for JavaFX.
Future Java 7 update releases will not include the majority of these bug fixes.
Does JavaFX in Java 8 have fewer bugs than JavaFX in Java 7? => Certainly.
The major issue with JavaFX development on Java 8 at the moment is the SceneBuilder tool for Java 8 is only in early access release. However, it will have a production release quite soon and the latest early access release builds for SceneBuilder are quite usable.
I'm finding more and more news about Java 8 - however, Java 7 is just now being adopted in a lot of places. For example, at my work, we are still on Java 6, even though some of us have Java 7.
Im wondering - what is the limit on Java available versions? How often can we expect a new Java spec to be rolled out and implemented. I always thought that Java 8 would be far in the future, since Java 7 was still evolving.
Maybe there is a good (non tl;dr) official source for these sort of details which I'm missing, if so, please let me know.
The wikipedia page is quite a good source to give you ideas on past release schedule and future dates.
Generally speaking the period between releases is roughly two years. There was a huge gap between 6 and 7 due to Sun being acquired by Oracle and the effort to open source the JDK, I would not however expect this to repeat.
As ever, take any future release date with a pinch of salt. The current date for 8 is Summer 2013 so if I was planning projects I wouldn't be banking on it being available and stable (one or two patch releases) until late 2013.
There were 2 options:
1. Wait with Java SE 7 until all feature are ready
2. Release Java SE 7 now (Summer 2011) and Java SE 8 soon afterwards with the remaining features
Oracle chose option 2.
Note:
Java SE 7 hasn't been released for end users yet, just for developers: https://www.java.com/en/download/faq/java7.xml
There is only a preview version out for Mac OS X: http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3-download-1501626.html
Java SE 6 goes EOL at November 2012 (given that the end user version of Java SE 7 is released at least 6 months before): https://blogs.oracle.com/java/entry/eoling_java_se_6_javafx