BTW, the difference between using "-server" and "-client" is with the JIT compiler. With the "-client" option, the JVM will JIT the class files as soon as it is loaded. WIth the "-server" option, the JVM will stay with the interpreter gathering information about the class, usage patterns, etc. Then later, the JVM will JIT the class files, using the profiling information that it gather to optimize it.
Originally posted by Sanju Thomas: Thank you all.. Does it mean that when I start my program using "java -server program_name" it starts as a server VM ?
Not necessarily. The JRE version you are using will have to have the server jvm.dll installed with it. The standard Windows JRE doesn't. You need to use the JRE that is bundled with the JDK if you want to use the -server option on Windows.