2015-07-28 73 views
0

我一直在嘗試從其他類運行主要方法。我知道揮杆是單線程的。所以我使用這個代碼運行其他類的主要方法

private static void runUpdate(){ 
    SwingUtilities.invokeLater(new Runnable() { 
    @Override 
    public void run() { 
     String[] args1={"10"}; 
     Update.main(args1); 
    } 
}); 
} 

private void updateButtonActionPerformed(java.awt.event.ActionEvent evt) {            
    runUpdate(); 
} 

這段代碼是在InventoryMgr類中,我想從Update類運行main方法。

StackOverFlowError

+1

誰在調用'updateButtonActionPerformed'方法? – KDM

+1

共享stacktrace和你的主代碼,這將有助於確定循環的原因 –

回答

2

去翻你的StackOverflowError堆棧跟蹤。它會告訴你什麼方法叫做什麼,以及什麼行號。問題是你的main()調用一個調用main()方法的方法,該方法調用main()...

解決方法是將需要的功能從main()中重複出來並放入單獨的方法。然後你可以調用它而不會導致無限遞歸。

調用main()是合法的,除了JVM會調用它來開始你的程序之外,它並不是特別的。但是,實際上又想再次調用main()是很不尋常的。

相關問題