Friday, June 28, 2013

JRE and Multiple JVM

What is JRE (Java Run time environment) ?

·  JRE is a  Java Runtime Environment. It is a software that provide an environment to run the Java program.
·  To run  the java program we need to install JRE on our machine.
·  JRE consists of  JVM , core classes(class libraries), and supporting files.

i.e. JRE = JVM + Java Packages Classes(like util, math, lang, awt,swing etc)+runtime libraries.

JRE  does not contain any development tools such as compiler, debugger, etc.

· Compiler will convert the java code in to byte code and  JVM runs that complied program, and it uses the class libraries, and other supporting files provided in JRE.

Java application launcher opens a JRE, loads the class, and invokes its main method.

· The JRE is available for multiple computer platforms, including Mac, Windows, and Unix.

· If the JRE is not installed on a computer, Java programs may not be recognized by the operating system and will not run.

   JRE software is available as both a standalone environment and a Web browser plug-in, which allows Java applets to be run within a Web browser.

JRE for different version of Java

Adding  different feature, fixing bug etc to each version of java and will release new versions
We can see below,JRE download has not grown significantly in recent memory.

                                 Java 1.4.2         Java 5 (1.5)                    Java 6 (1.6)
JRE                           15.10 MB          16.13 MB                       15.42 MB  
SDK                          49.33 MB          51.82 MB                       72.90 MB

Multiple JVM 

Each instance of the Java execution will create separate JVM. If you start any two Java-based processes on your computer, they will each be running in their own JVM. You can run more than one java process, whether of the same JVM version or different ones.

Two JVMs cannot run and share memory. Each has its own heap, in different areas of RAM.
You would need to use sockets, multiple agents, RMI or similar to access code on different JVMs.