我有一个JAR文件,我希望自己实现。
我到目前为止:
问题是,当我打开“Downloader”时,当前的JAR仍在运行。
private void startUpdater() {
try {
String command = "java -jar Updater.jar";
System.out.println("Command: " + command);
Runtime.getRuntime().exec(command);
System.out.println("Updater started!");
} catch (IOException e) {
e.printStackTrace();
}
}
节日快乐!
答案 0 :(得分:2)
对于部署Java桌面应用程序,最好的选择通常是安装应用程序。使用Java Web Start。 JWS适用于Windows,OS X& * nix中。
JWS提供了许多吸引人的功能,包括但不限于启动画面,桌面集成,文件关联,自动更新(包括延迟下载和程序化控制更新),本地分区和&按平台,体系结构或语言环境下载的其他资源,运行时环境的配置(最低J2SE版本,运行时选项,RAM等),使用扩展轻松管理公共资源..
答案 1 :(得分:0)
对于那些习惯使用Unix的人来说,Runtime.exec()是用词不当。在Unix中,exec替换当前进程。在Java中,它没有,因为缺少一个更好的词,“启动”另一个过程和调用exec的过程仍然存在。
在exec返回之后,您有一个Process对象,它充当新启动的进程的句柄。你真的不需要对此做任何事情,但你应该立即退出
的父进程在这种情况下,exec返回后调用exec的进程也需要退出,这样操作系统就不会打开原来的jar。