Solution 1:

This sounds like you only have 32 bit version of Java installed. If your PC actually has 16GB of RAM, that means you are running a 64-bit Operating System. Switch to 64 bit java and you can allocate more memory.

Per this oracle FAQ

Why can't I get a larger heap with the 32-bit JVM?
The maximum theoretical heap limit for the 32-bit JVM is 4G. Due to various additional constraints such as available swap, kernel address space usage, memory fragmentation, and VM overhead, in practice the limit can be much lower. On most modern 32-bit Windows systems the maximum heap size will range from 1.4G to 1.6G. On 32-bit Solaris kernels the address space is limited to 2G. On 64-bit operating systems running the 32-bit VM, the max heap size can be higher, approaching 4G on many Solaris systems