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"}

OS の移植性について心配する必要はありません。プログラムは Ubuntu でのみ実行されます。

プログラムが正常に再起動するか、少なくとも新しいプロセスが実行されています (そして、しばらくしてから再起動し続けます)

問題は、再起動後にコンソールが失われることです。そのため、プログラムで実際に何が起こっているのかわかりません。

「同じウィンドウ」で新しいプロセスを開始する方法、またはそれにアクセスする方法はありますか (おそらく画面を使用して?)?

4

0 に答える 0