I have some java application on windows 7 x64 and pass a parameters to it:
-Xms256m -Xmx256m
Then I run Process explorer and see columns (values) on java process: Private bytes (414 620K), Working Set (328 876K) and Virtual Size (1 890 352K). It is easy to see that after I specify max and min heap size java.exe process allocates more memory in virtual size. And this influence on Page file size on windows to grow.
So how to restrict java virtual memory usage?
P.S. If you want to reproduce this situaltion you can download cassandra, edit bin\cassandra.bat
with -Xms256m -Xmx256m
and after start you can see a difference between heap memory size and virtual. However cassandra is just a java program, so the question about how to run java program, not how to run cassandra.