Java on 32bit Windows requires a contiguous block of memory - windows32 cannot give too big a block of memory, AFAIK max 1.5G (this is memory back from the XP times), but only that much if the memory is not too fragmented already (yes, I know, sounds weird nowadays).
So, you might try to reboot your machine and start java/tomcat first thing, before you start other applications. Another option is to provide less memory (try how much is required vs. available).
Also, for production settings, I always recommend to have -Xms and -Xmx to have the same size: If something goes wrong, you'll get the result immediately, plus the contiguous block of memory has been allocated already.