我正在为我的小程序构建一个重启器。
基本思想是使用 运行一个进程Runtime.getRuntime().exec
,执行程序本身,然后运行System.exit(0);
这是重新启动的代码:
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
try {
Runtime.getRuntime().exec(strList);
} catch (IOException e) {
e.printStackTrace();
}
}
});
// exit
System.exit(0);
strList
类似的String[]
东西在哪里:
{"/bin/bash","-c","java -jar path/to.jar"}
不用担心操作系统的可移植性,该程序将专门在 Ubuntu 上运行。
程序重新启动正常,或者至少有一个新进程正在运行(并在一段时间后继续自行重新启动)
问题是重新启动后我松开了控制台,所以我不知道程序实际发生了什么。
有什么方法可以在“同一个窗口”中启动新进程或以任何方式访问它(也许通过使用屏幕?)?