Is there one JVM per Java application?

nadh picture nadh · May 10, 2011 · Viewed 35.2k times · Source

Is the same JVM used by all Java applications running or, does 'one JVM per Java application' apply? (say the applications are IntelliJ IDEA, a server and NetBeans for example)

Further, is there any connection between JVMs assigned and processes used by each Java application?

Answer

Joachim Sauer picture Joachim Sauer · May 10, 2011

Generally speaking, each application will get its own JVM instance and its own OS-level process and each JVM instance is independent of each other.

There are some implementation details such as Class Data Sharing, where multiple JVM instances might share some data/memory but those have no user-visible effect to the applications (except for improved startup time, hopefully).

A common scenario however is a single application server (or "web server") such as Glassfish or Tomcat running multiple web applications. In this case, multiple web applications can share a JVM.