1

For a very long time now, I have been able to explain and separate the concepts of the jdk and the JRE quite succinctly. The jdk was for developers and you only need it if you plan on developing, where is the JRE is essentially the resources associated with the Java virtual machine, which is needed by anyone wanting to run Java regardless of whether they are a developer or not.

Now, everywhere I read, people are telling others that they don't need a JRE, and that the jdk includes everything that is necessary. So, my initial thought is that the virtual machine and all the required libraries to run Java come with the jdk. That's fine.

However, I'm having difficulty understanding what a regular user experiences then. I have seen on my own devices updates to Java in the notification area, and I know tons of people who run Java on their computers and other devices that are not developers.

That being said, what exactly are they updating now if there is no JRE? They have to have a Java virtual machine on their machine in order to run Java, correct? Does the new virtual machine run software that is written with jdk 12? Specifically, I'll assume it has to work with openjdk 12?

These changes are a little bit confusing, so I'm trying to find out if any of you might have some information about them.

Thanks!

Ginzorf
  • 635
  • 9
  • 16
  • See [How to get java 11 run-time environment working since there is no more jre 11 for download?](https://stackoverflow.com/questions/53111921/how-to-get-java-11-run-time-environment-working-since-there-is-no-more-jre-11-fo) – SDJ Aug 27 '19 at 20:19

1 Answers1

1

Presumably because they're rev'ing one or more aspects of the development environment, but have no need for a change to the JRE.

One example I can think of would be to patch javac... the output might still work just fine on the previous JRE, but javac could have been changed to produce more efficient byte-code or patch some security vulnerability.

Those by themselves don't strike me as "major rev" worthy, but that may well be a marketing decision rather than a technical one.

EDIT: The Actual List of Changes: https://openjdk.java.net/projects/jdk/12/

  • GC Thing (experimental)
  • Benchmarking thing
  • New syntax for switch/case (it looks like lamdas switch(foo) {case bar, baz -> qux();})
  • "JVM Constants API"? How is that not a JRE thing? (edit: it could be that the API was already present, but has now been made public)
  • Drop support for one of two 64 bit architectures on ARM. Needless redundancy is needlessly redundant.
  • "Default CDS Archives" CDS: Class Data-Sharing More efficient reflection?
  • "Abortable Mixed Collections for G1"
  • "Promptly Return Unused Committed Memory from G1"
Mark Storer
  • 15,209
  • 2
  • 37
  • 75