Search code examples
javavirtual-machinejvm-hotspot

Difference between JVM, server/jvm.dll file and Java HotSpot VM both client and server versions


Can someone please explain me the difference between JVM, server\jvm.dll file and Java HotSpot VM. I have already studied

jvm.dll file from Difference between java.exe, javaw.exe and jvm.dll and

HotSpot from Difference between JVM and HotSpot?

Real differences between "java -server" and "java -client"?

http://www.oracle.com/technetwork/java/whitepaper-135217.html#solid

but still didn't understand the concept. Please give a simple and clear explanation.


Solution

  • java.exe is the Java launcher. It's a very small program that loads jvm.dll, and uses JNI (Java Native Interface, an interface inside jvm.dll that is used to connect C and Java code) to start up the JVM.

    The difference between the client and server versions is in the warmup time and optimisation strategy (client takes less time to start up than server, but performs less optimisations). So -server is generally better for long-running processes, where the longer startup time is amortised, and -client is generally better for short-lived ones.