您好,我目前正在开发一个能够自行更新的命令行程序。我的更新过程的解决方案是运行一个更新程序(另一个jar文件),它下载一个新的jar,用旧的jar替换它并执行它。一切正常,除非启动更新程序或下载的jar时终端上没有可见的输出。
要运行jar我使用ProcessBuilder:
...
ProcessBuilder builder = new ProcessBuilder("java", "-jar", JAR_FILE);
Process ps = builder.start();
ps.waitFor();
...
是否可以使用相同的PrintWriter或其他东西来查看已执行的jar的输出?
修改 主要问题是,例如,当调用updater时,主进程会自行终止,因此可以安全地从主进程替换jar文件并再次启动它。