2012-06-11 201 views
1

我需要重新啓動一個Java GUI應用程序以響應用戶操作,與切換工作區時自動重啓自己的方式類似。我可以使用install4j啓動程序重新啓動Java應用程序嗎?

我們目前使用install4j啓動程序,所以我想知道如果啓動程序可以配置爲保持運行並重新啓動應用程序,如果我退出應用程序與特定的返回代碼或類似的東西?

乾杯

回答

4

這不是install4j中的一項功能。但是,您可以使用java.lang.ProcessBuilder再次啓動啓動器,並調用System.exit()。

如果啓動程序是單實例GUI啓動程序,則必須使用另一個可執行文件,它等待啓動程序關閉,然後重新啓動原始可執行文件。這可以通過在其「啓動」節點中包含「執行啓動器」操作的自定義安裝程序應用程序輕鬆完成。自定義安裝程序應用程序通過API發起與參數

-q -wait 20 

即它在無人蔘與模式(沒有GUI)被執行,並等待最多20秒所有已安裝的發射器關閉。要顯示進度條,請添加

-splash "Restarting application" 

參數。啓動自定義安裝應用程序的代碼看起來是這樣的:

import java.io.IOException; 
import com.install4j.api.launcher.ApplicationLauncher; 

try { 
    ApplicationLauncher.launchApplication("ID", new String[] { 
     "-q","-wait","20" 
    }, false, null); 
} catch (IOException e) { 
    e.printStackTrace(); 
    //TODO handle invocation failure 
} 

其中ID必須與自定義安裝應用程序的ID來代替。

+1

嗨,它也適用於單實例Windows GUI應用程序? – calvin

+1

不,在這種情況下,它更復雜,請看我更新的答案。 –

相關問題