0

有时,我的 java 应用程序中出现“java.io.IOException: error=12, Cannot allocate memory”。

我想在我的机器上重现它。有没有办法重现这个错误?Runtime.exec 什么时候会抛出 java.io.IOException?

仅供参考,[root@ara ~]# java -version java version "1.6.0_22" Java(TM) SE Runtime Environment (build 1.6.0_22-b04) Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03,混合模式)

4

2 回答 2

1

你可以从这里得到你的答案:

  1. 在旧的 OpenJDK 版本上试一试。这似乎是一个 JVM 错误。
  2. 设置overcommit_memory为 2(不要过度使用)

    echo 2 > /proc/sys/vm/overcommit_memory

  3. 运行以下程序:

    public class ReproduceException {
    
       public static void main(String[] args) throws IOException {
            Runtime.getRuntime().exec("ls");
       }
    
    }
    
于 2013-02-07T07:45:43.037 回答
0

我已经链接了一个问题,该问题解释了导致此问题的原因并提供了至少两种解决方法。从解释中,您应该能够找出导致它的策略……如果您在阅读问答后仍然感兴趣的话。

于 2013-02-07T07:38:35.370 回答