From Java Platform, Standard Edition 8 Names and Versions:
In JDK 8 and JRE 8, the version strings are 1.8 and 1.8.0
Why? Because the developers of Java chose to name the versions like this. I can only assume the real reasons, but I think it is, because naming it Java 8 implies that it is new and much better than Java 7 but keeping the version bump from 1.7 to 1.8 indicates that it is still version 1.x and therefore still backwards compatible. In the end it is marketing.
See also Why is Java version 1.X referred to as Java X?.
Answer from leonardkraemer on Stack OverflowClarification of OpenJDK 8 end of life
OpenJDK 8 is maintained by RedHat. They will support Java 8 until 2026: https://access.redhat.com/articles/1299013
Most OpenJDK vendors will do the same. Some (like Azul) are committing to December 2030 like Oracle. You should check with your vendor.
More on reddit.comJava / Java SE / JDK / JRE - which is which and what do I want?
What is the point of all these new Java versions when Java 8 is all that seems to be supported by most apps?
Because they switched to a new release model which allows for them to get new features out faster.
Same thing happened when Firefox and chrome switched to a timed release model. People bitched about version numbers but slowly got use to the fact that "I don't really care that this is firefox 82".
From an organization standpoint, this has been great for the Java getting features out. It used to be that they'd say "Ok, we are going to target key feature X for java Y". The problem with that is nearly all project development got devoted to that feature and ultimately "when" java would go out was completely unknown. Further, releases where crazy times for JDK developers.
With the new model, they've been able to work on a lot more features in parallel. A ton of usability features made it in (records, pattern matching, string literals) which never would have made it in the old model. Further, it's allowed them to slowly walk in huge features (Valhalla, loom, etc) making pre-emptive changes needed to support massive changes in the future.
Post Java 9, the upgrades have been a breeze. Honestly, I almost wish they'd move to an even faster release model to really force people to stop caring so much about these version numbers. Rust does a release every 6 weeks and I think that works great. Nobody cares that it's now Rust 1.50 or whatever.
More on reddit.comJEP 265 comes to OpenJDK 8
We have integrated the Marlin engine into our Zulu build of OpenJDK 8
Thats a difference
More on reddit.comVideos
From Java Platform, Standard Edition 8 Names and Versions:
In JDK 8 and JRE 8, the version strings are 1.8 and 1.8.0
Why? Because the developers of Java chose to name the versions like this. I can only assume the real reasons, but I think it is, because naming it Java 8 implies that it is new and much better than Java 7 but keeping the version bump from 1.7 to 1.8 indicates that it is still version 1.x and therefore still backwards compatible. In the end it is marketing.
See also Why is Java version 1.X referred to as Java X?.
Before Java 9, Java version X was internally specified as 1.X according to these specs.
Then came JEP 223 which proposed to change the version to just X starting with Java 9.
It should be noted that different tools may even use other conventions. For instance in Gradle there is JavaVersion.VERSION_1_9, JavaVersion.VERSION_1_10 and they only switch to the new convention in JavaVersion.VERSION_11 (see their code comment).
The Oracle Java SE support roadmap site says "extended support until December 2030". Will OpenJDK be covered under this support (i.e. security updates), or, is it it only available for paid support to OracleJDK?
OpenJDK 8 is maintained by RedHat. They will support Java 8 until 2026: https://access.redhat.com/articles/1299013
Most OpenJDK vendors will do the same. Some (like Azul) are committing to December 2030 like Oracle. You should check with your vendor.
https://adoptopenjdk.net/support.html
Do you men adoptopenjdk? On their official page it states that Java 8 will be available at least till May 2026. It doesn't say anything about 2030.
Since they are different distributions I doubt that Oracle will make the Updates available for non paying customer.
Edit: the project moved to Adoptium...
https://adoptium.net/support.html
Okay, context. I'm trying out some programming languages to perhaps get into (after previously primarily doing stuff with C#). One of these is Java. I had a 2019 version of Eclipse installed from last time I wanted to learn Java. Updated it to 2021, and it tells me I need Java 11 or higher.
So I google "download Java". Oracle offers me to download Java 8 Update 291, released April 2021. I check my instaleld version. Sure enough, I have Java 8 Update 291. If I am up to date, why is Eclipse complaining, I wonder? So I google Java 11. Huh, what's that, there are versions of Java up to 16? One article mentions that Java 8 has been deprecated for years. Odd, I think, didn't Oracle tell me just now that Java 8 was released in 2021? Oh, I see, they are talking about something called "Java SE". So I google what that is. "java vs java se", I google, but all I get are articles about how Java SE is different from something called Java EE. Never heard of it, I don't want it. In the meantime, I have also googled for JDK, since I assume that I need the Java SDK to get the compilers. Maybe the JDK has a different version number than the JRE, I theoretise. But then what is this Java SE? At one point, it says it's the standard edition, but on the next page, it says it's "for reference purposes only". Whatever that means. Can I use it to run and compile Java or not, I ask.
tldr: why is there a Java 16 if Oracle tells me 8 is the latest, which one do I want to run and program with the latest Eclipse?
P.S. necessary context is perhaps that I'm on 64-bit Windows 7 (my Eclipse install on my Linux laptop works fine)
Editors note: This answer is outdated as the PPA’s listed are not available anymore.
You can do this for;
Final Update
JDK
sudo apt-get install openjdk-8-jdk
JRE
sudo apt-get install openjdk-8-jre
Old Update
I found two repository but I do not recommend
OpenJDK builds (all archs)
ppa:openjdk-r/ppaOpenJDK 8 backport for trusty
ppa:jochenkemnade/openjdk-8
Original Message
If you really want to use OpenJDK, you have to compile from source. There is not still any PPA for OpenJDK.
It has been requested at https://bugs.launchpad.net/ubuntu/+bug/1297065
I recommend you to use Webup8 Oracle Java8 Installer
Note: WebUpd8 team's PPA has been discontinued with effective from April 16, 2019. Thus this PPA doesn't have any Java files. More information can be found on PPA's page on Launchpad. Hence the below method no longer works and exists because of historical reasons.
sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update
sudo apt-get install oracle-java8-installer
To automatically set up the Java 8 environment variables
sudo apt-get install oracle-java8-set-default
Check it
java -version
So you have to wait to use OpenJDK8
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
sudo update-alternatives --config java
sudo update-alternatives --config javac
This is likely to be a really dumb question, but why are there constantly new major versions of Java being released, but everything we need Java for in our infrastructure continues to use Java 8? I remember when Java 9 and 10 came out and I thought we would be moving to those versions. But here we are in 2021, and all our Java dependent software still comes bundled with the latest Java 8 version. Even my daughter's Minecraft software still uses Java 8, right? I just saw Java 16 being published on Oracle's website. What am I missing about all of this?
Because they switched to a new release model which allows for them to get new features out faster.
Same thing happened when Firefox and chrome switched to a timed release model. People bitched about version numbers but slowly got use to the fact that "I don't really care that this is firefox 82".
From an organization standpoint, this has been great for the Java getting features out. It used to be that they'd say "Ok, we are going to target key feature X for java Y". The problem with that is nearly all project development got devoted to that feature and ultimately "when" java would go out was completely unknown. Further, releases where crazy times for JDK developers.
With the new model, they've been able to work on a lot more features in parallel. A ton of usability features made it in (records, pattern matching, string literals) which never would have made it in the old model. Further, it's allowed them to slowly walk in huge features (Valhalla, loom, etc) making pre-emptive changes needed to support massive changes in the future.
Post Java 9, the upgrades have been a breeze. Honestly, I almost wish they'd move to an even faster release model to really force people to stop caring so much about these version numbers. Rust does a release every 6 weeks and I think that works great. Nobody cares that it's now Rust 1.50 or whatever.
What am I missing about all of this?
Well you are missing out on a lot;
-
Lots of JVM (HotSpot) enhancements
-
Updates to the Streams API
-
Records
-
Text Blocks
-
Switch expressions
-
Pattern matching for instanceof
-
var
Just to name a few, but it's really small list compared to all that has been added since 8, you can see all the additions here.
Upgrading infrastructure can be difficult and time consuming. There was also a lot of FUD related to the Module System which was a part of Java 9. Have a hard time imaging any meaningfully popular tool or frameworks which doesn't support Java 11, which keep in mind it has been out for nearly three years now, and many tools and frameworks release support for the most current version of Java right around it's release.