1

我正在为我的小程序构建一个重启器。

基本思想是使用 运行一个进程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 上运行。

程序重新启动正常,或者至少有一个新进程正在运行(并在一段时间后继续自行重新启动)

问题是重新启动后我松开了控制台,所以我不知道程序实际发生了什么。

有什么方法可以在“同一个窗口”中启动新进程或以任何方式访问它(也许通过使用屏幕?)?

4

0 回答 0