java.io.IOException:错误=12,无法分配内存

java.io.IOException:错误=12,无法分配内存,java,swap,Java,Swap,在其中一台机器上,我的应用程序引发异常 Caused by: java.io.IOException: error=12, Cannot allocate memory at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.<init>(UNIXProcess.java:247) at java.lang.ProcessImpl.start(ProcessIm

在其中一台机器上,我的应用程序引发异常

 Caused by: java.io.IOException: error=12, Cannot allocate memory
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
    at java.lang.ProcessImpl.start(ProcessImpl.java:134)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
    ... 7 more
原因:java.io.IOException:error=12,无法分配内存
位于java.lang.UNIXProcess.forkAndExec(本机方法)
位于java.lang.UNIXProcess(UNIXProcess.java:247)
在java.lang.ProcessImpl.start(ProcessImpl.java:134)处
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 还有7个
根据错误消息,它正在执行fork并获取OOM,本文对此进行了清楚的描述,并提供了一些修复。
我在那个盒子上有32GB的ram,另一个盒子上有16GB。在这个主机上,我没有交换空间,但在16 GB的机器上,我有交换空间。进程在16 GB的机器上运行,但在这个机器上没有。现在的问题是,即使我有足够的RAM,我真的需要交换空间吗?问题的原因还可能是什么?

您是否使用
-Xmx
设置了最大堆空间?这里有一些相关信息:是的,我的记忆翻了一倍,没有帮助。