gpt4 book ai didi

java - 有没有办法动态重启循环打印输出的 HelloWorld Java 程序?

转载 作者:搜寻专家 更新时间:2023-10-30 21:19:50 24 4
gpt4 key购买 nike

考虑以下简单的代码,它会永远打印“Hi world”:

public class WakeMeUpSomehow {

public static void main(String[] args) {

while (true) {
try {
System.out.println( " Hi world ");
Thread.sleep(1000); //1000 milliseconds is one second.
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
}
}
}

这是输出:

enter image description here

有没有办法设计一个外部的第三个程序,它会监视这个程序以在我们杀死它时注意到它(就像在命令行中使用 CTRL+C);然后这个“父”程序恢复运行“Hello World”?

我认为它可能看起来像这样:

enter image description here

所以我的问题是 - 我怎样才能模拟这样的代码,它具有这种故障安全能力?有没有办法做到这一点?

谢谢!

编辑:我在这里找到了一个简洁的链接,它是相关的,但地址有些不同- How can I restart a Java application?

最佳答案

关闭 Hook 保证在程序的正常关闭事件上运行,但不会在所有类型的异常终止上运行,例如 JVM 被强制终止时。

一种解决方案可能是使用批处理脚本:

@echo off
setlocal

start /wait java WakeMeUpSomehow

if errorlevel 1 goto retry
echo Finished successfully
exit

:retry
echo retrying...
start /wait java WakeMeUpSomehow

关于java - 有没有办法动态重启循环打印输出的 HelloWorld Java 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29785889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com