You misunderstand the nature of Java. All Java Applets and Applications require a runtime environment (JRE). In computer languages there are interpretive languages such as BASIC and Javascript (technically ECMAScript) that only ephemerally generate executable code and each statement is translated from human readable code into machine readable form each time each statement is performed. As you can imagine this is not very efficient but it does make the coding process go faster. Compiled programming languages such as Objective C are translated into machine readable code only once, at "compile time" and what you have on your computer is ONLY the resulting machine readable code.

Java is a compromise between the two. The Java code is compiled into an intermediate pseudo machine language. To run a Java app or application you have to have a Java Runtime Environment that translates the pseudocode into executable code for the specific host processor and operating system. The result is not as efficient as a fully compiled application, but a lot more efficient than a fully interpretive language. Theoretically the same compiled pseudocode should be able to run on any processor and operating system with the aid of the appropriate runtime environment.

With appropriate changes in the Java source (ie. the human readable) code header the compiled pseudocode can become…
  • an Applet that only runs in the environment of an internet browser and has severe restrictions on what it can and cannot access and do and not do
  • a stand alone application that is relatively indistinguishable from any other application written in any other programming language
  • a Servlet that can only run in a server environment
  • a variety of other …lets for specialized environments.
all of these require the JRE to execute

The applet plug-in provides the link from the browser to the JRE. (I believe it is still true that Google Chrome is unique in having its own built-in JRE for applets.)

The Java 8 Version 51 install includes both the JRE and the browser plug-in.

For whatever reason Apple chose for many years to adapt its own JRE based on the Java/Oracle JRE but that meant Apple was always behind often several months behind in getting their release out. That was acceptable until vulnerabilities were found where it was previously thought to have been obviated in the original Java standard. (The best laid plans of mice and software designers etc.) Immediately the months long lag was unacceptable. Since Apple had switched from the PowerPC processor, it was no great trick for Oracle to adapt their Intel JRE to the OS X platform and Apple was, I believe, relieved to cede all Java JRE development to them.

This version 6 release that is being discussed here is needed primarily because of poor program design and coding practices on the part of some Java developers. It was never an issue for most Java applets, applications, servlets, et. al.


If we knew what it was we were doing, it wouldn't be called research, would it?

— Albert Einstein