Questa è la soluzione ma devi impostare: Questo è risolto in Java versione 1.6.0_23 e successive. Runtime.getRuntime ().exec alloca il processo con la stessa quantità di memoria del main. Se hai impostato l'heap su 1 GB e provi ad eseguire l'exec, allocherà un altro 1 GB per l'esecuzione di quel processo. Sembra essere un bug.