Esta é a solução, mas você deve definir: Isso é resolvido no Java versão 1.6.0_23 e posteriores. Runtime.getRuntime () .exec aloca o processo com a mesma quantidade de memória do principal. Se você definiu seu heap para 1 GB e tentou executar, ele alocará outro 1 GB para que o processo seja executado. Parece ser um bug.