我有一個運行在Windows服務器上的Java進程,我必須啓動命令行exe。我正在使用是否有可能從Java程序中捕獲Windows彈出消息框?
Process p = Runtime.getRuntime().exec(command);
OutputStream stdin = p.getOutputStream();
InputStreamstderr = p.getErrorStream();
InputStream stdout = p.getInputStream();
運行進程並捕獲標準輸入/輸出流。我遇到的問題是我必須運行的exe文件中的一個會彈出一個彈出消息框,需要點擊「確定」才能完成失敗。
我的Java程序正在後臺運行,因此它沒有彈出消息框的窗口,這意味着當程序掛起時,Java程序將掛起,直到有人注意到它並在任務管理器中將其終止。
有沒有辦法能夠捕捉或檢測這些Java彈出框?
如果這是一種確定的方法,那麼在開始這條道路之前,我會思考很長時間。出於所有實際的目的,該應用程序不再是Java應用程序。 – Cumbayah 2010-09-02 20:50:00
確實如此。但同時,應用程序的描述聽起來像是它永遠不會在Windows環境之外使用。 此外,當平臺特定的代碼被整齊地封裝在一個單獨的類中時,我會認爲這是一個相當困難但也是乾淨的解決方案。在Sunoracle沒有構建底層操作系統的橋樑的情況下,你必須自己動手。 – allesblinkt 2010-09-02 21:42:20
這是一個有趣的想法。我擁有的應用程序實際上是一個需要在任何類型的操作系統上運行的較大系統。這種彈出式問題只發生在我必須運行的Windows服務器上,所以像這樣的想法仍然可以工作,我可以將它作爲exec()調用下的一個層添加進來。 – Sean 2010-09-02 23:33:06