2013-02-07 26 views
0

有時,我的Java應用程序中出現「java.io.IOException:error = 12,無法分配內存」。如何重現Runtime.exec()的java.io.IOException異常?

我想在我的機器上重現它。 有沒有辦法重現這個錯誤? Runtime.exec什麼時候會拋出java.io.IOException?

FYI, [根@ ARA〜]#Java的版本 Java版本 「1.6.0_22」 的Java(TM)SE運行時環境(建立1.6.0_22-B04) 爪哇的HotSpot(TM)64位服務器虛擬機(內部版本17.1-b03,混合模式)

+0

爲什麼你需要重現此?這似乎是一個錯誤。 – StarPinkER

+0

我想重現它,以測試我的異常處理代碼。我需要測試異常處理的代碼路徑。 – maheshkanse

回答

0

我已經鏈接了一個問題,解釋導致此問題的原因並給出至少2種方法來修復它。從解釋你應該能夠找出一個戰略導致它...如果這仍然是關注你讀取Q & A.

1

您可以從this得到答案:

  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"); 
        } 
    
    } 
    
相關問題