我正在尝试为我的应用程序构建一个简单的自动更新程序。我目前正在针对我的远程版本检查本地应用程序版本。如果有更新的版本,我想启动我的updater.jar - 它基本上下载并替换旧的应用程序。
我的问题是,如果有新版本,我似乎无法启动updater.jar。
我目前使用的代码是:
Runtime runtime = Runtime.getRuntime();
try {
Process proc = runtime.exec("java -jar updater.jar");
} catch (IOException ex) {
Logger.getLogger(Splash.class.getName()).log(Level.SEVERE, null, ex);
}
System.exit(0);
应用程序退出但updater.jar永远不会启动..
有什么想法吗?
答案 0 :(得分:0)
当您的父进程退出时,您的子进程可能正在退出。
当您启动流程时,通常应该:
Process.waitFor()
从子进程中捕获退出代码在我看来,你想要生成更新程序,让它执行下载,然后退出父进程。任何更复杂的东西都可能与平台有关(例如,产生后台进程并将其取消)
答案 1 :(得分:0)
可能应该在java -jar
命令中指定updater.jar的路径。
答案 2 :(得分:0)