作者CrazyBoss (CrazyBoss)
看板java
標題Re: [問題] call另一個Class的main,原程式就結束?
時間Sat Nov 17 22:34:03 2012
※ 引述《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