看板 java 關於我們 聯絡資訊
※ 引述《CrazyBoss (CrazyBoss)》之銘言: : 標題: [問題] call另一個Class的main,原程式就結束? : 時間: Sat Nov 17 18:30:52 2012 : : 我要執行的主程式: : : package ManyMain; : : import XXX.jar檔; : : public class ManyMain { : : public static void main(String[] args) { : XXX.main("1"); : XXX.main("2"); : XXX.main("3"); : } : } : : ------------------------------------------------------------- 分享一下解法好了 首先我覺得GW_MsgSender.jar應該是有System.exit()這行 導致call一次GW_MsgSender.main()就會結束所有程式 我在網路上找到這個網頁 http://ppt.cc/9UGy 解決辦法就是利用網頁上說的在runtime時call別的程式 import java.io.File; import java.io.IOException; import XXX.jar檔 public class ManyMain { static File f1 = new File(".jar檔的位置"); static String[] envp = {"Java的bin資料夾位置"}; public static void main(String[] args) throws IOException, InterruptedException { Runtime rt = Runtime.getRuntime(); Process p1 = null; Process p2 = null; Process p3 = null; p1 = rt.exec("java -jar XXX.jar檔 參數0 參數1 參數2", envp, f1); p1.waitFor(); p2 = rt.exec("java -jar XXX.jar檔 參數0 參數1 參數2", envp, f1); p2.waitFor(); p3 = rt.exec("java -jar XXX.jar檔 參數0 參數1 參數2", envp, f1); p3.waitFor(); } } ------------------------------------------------------------- 簡單來說就是像在cmd裡執行java -jar XXX.jar檔 參數0 參數1 參數2 最後謝謝lachtchlee給的建議XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.82.219 ※ 編輯: CrazyBoss 來自: 140.116.82.219 (11/17 22:36) ※ 編輯: CrazyBoss 來自: 140.116.82.219 (11/17 22:39)
LaPass:真的是用開另外一個jvm給他的方式 XD 11/17 22:43
darkk6:用 JD-GUI 或 Bytecode Editor decompile >///< 11/17 22:50
CrazyBoss:對就是在開jvm,不過好像沒什麼人討論QQ" 11/17 22:58
※ 編輯: CrazyBoss 來自: 140.116.82.219 (11/17 23:13)
PsMonkey:exec 不是什麼神奇招式,之前常常有人問 11/18 09:06
PsMonkey:反過來說,有 System.exit() 的 lib/app 真的要這樣用嗎 11/18 09:07
iFEELing:剛入門的時候有把System.exit() 寫在jsp裡呢.... 11/18 09:54
LaPass:orz.... 那會把整個系統停掉吧.... 11/18 11:38
CrazyBoss:我改一下標題讓人好搜尋 11/18 14:04
sbrhsieh:可以考慮使用 bytecode engineering(含AOP) 方式把 11/18 18:10
sbrhsieh:System.exit call 移除或抑制掉。 11/18 18:11
qrtt1:SecurityManager 也可以阻擋 System.exit 11/18 22:41