Problem with java heap size

A month ago I could start mkgmap, osmosis, splitter, etc. with the command

java -Xmx1600m -jar ...

After a motherboard change of my machine, I re-installed Windows XP professional (32 Bit) and all programs, incl. Java Runtime Environment version 1.6.0_25. The machine has 4 GB RAM, where about 3.5 GB can be used with a 32 Bit operating system. The task manager says that more than 23000 MByte RAM is available with running windows. Additional virtual memory is about 4 GB. Now the maximum possible value for the heap space is significantly reduced, so I can not reserve more than 1100 MByte:

java -Xmx1100m -jar ...

On another (much smaller) machine with only 1 GB RAM, XP home and Java Runtime Environment 1.6.0_22, I can reserve 1400 MByte with no problem.

Has anyone an idea, how I can come back to my old 1600 MByte heap usage?

Does this help?

It basically says that the maximum heap size for a 32bit windows machine differs from machine to machine…

Not really… Although it was interesting to me that windows uses some space in the middle of free memory, so that only about 1.5 GByte contiguous memory is left.

What I don’t understand is, that I already had 16000 MByte and after reinstallation of windows and programs, I have only 11000 MByte.

The question is, what software setting caused this change. The hardware is still the same.