2017-04-07 82 views
1

我正在嘗試使用沒有版本檢查的更新程序來關閉調用啓動程序。我已經包括在我的代碼下面以啓動更新:如何從Java應用程序指定更新程序目錄?

ApplicationLauncher.launchApplication("368", null, false, null); 

時,它的執行這條線,它無法找到i4jparams.conf文件,我得到一個錯誤。顯然,它在與啓動程序相同的目錄中查找該文件,但該文件實際上位於.install4j(默認)子目錄中。更新程序應用程序也位於此目錄中。

這是工作,當我打電話給更新直接:

Process process = new ProcessBuilder(".\\.install4j\\updater.exe").start(); 

不幸的是這種做法不允許更新關閉調用啓動時,它是忙着安裝新的應用程序。

我顯然需要告訴ApplicationLauncher.launchApplication.launch4j目錄中查找更新程序,但我不確定如何執行此操作。

回答

1

這顯然是尋找在同一個目錄中的文件作爲launcher`

不,事實並非如此。實際的機制是使用JAR文件和運行時類所在的目錄。如果您自己將i4jruntime.jar放入類路徑中,那麼它可能會使用錯誤的目錄。

+1

謝謝,你的回答指向了我正確的方向。我必須從導出的Maven庫目錄中排除install4j-runtime-6.1.5.jar文件。我更改了Install4j中的文件分發樹定義以排除特定的JAR文件。改變之後,現在工作正常。 – Keplerian