I run a Java code with the following command:
$ java -Xms4G -Xmx4G myjavacode
My cpu\'s RAM capacity is 6GB.
However it always fail
You've exceeded the maximum heap size of your JVM. This is both JVM and OS dependent. In most 32-bit systems the maximum value will be 2Gb, regardless of the physical memory available.
By default Java will run in 32 bit mode. Be sure to give it the -d64 option to put it into 64 bit mode. Once in 64-bit mode, you shouldn't have any trouble allocating a 6GB JVM.
Actually, the maximum memory size on 32-bit systems can vary, being anything up to 4 GB, but 2 GB is a common value. It's often possible to re-link your kernel to increase this to 3 or 3.5 GB. The issue, of course, is that you just don't have the address space to map more memory. Have you tried a 64-bit machine?
Also, remember to set your ulimit higher before you do this.