我正在用 Java 编写一个控制台应用程序,可用于监控某个网站。此操作可以是无限的,直到它被中止。仅按 CTRL + C 中止它不起作用,因为应用程序仍在后台运行。(我使用的是 Windows,但它应该是可移植的。)
user995928
问问题
132 次
3 回答
0
如果用户输入某个单词,为什么不能等待用户输入并终止程序?
于 2012-06-23T09:21:00.087 回答
0
你注册了一个shutdownhook吗?当你中断它时,它会被 JVM 调用。在那里你可以干净地终止你的应用程序。
要记住的一件事:您启动的任何(后台)线程都应标记为守护线程,Thread.setDaemon(true)
否则 JVM 将不会终止,因为它仅在所有非守护线程都完成时才会终止。也许这就是为什么即使您按下 Ctrl-C,您的应用程序也会“在后台”停留的原因
于 2012-06-23T09:30:44.827 回答
0
试试这个,
1.有一个布尔变量来确定用户何时想要杀死程序。
2.创建一个无限循环来监控网站,并在其中检查布尔变量的状态。
例如:
boolean isGoing = true;
String s = null;
public void monitor(){
while(isGoing){
if(s.compareToIgnoreCase(new Scanner(System.in).nextLine()) == 0){
break;
}
// monitor here..................
}
}
于 2012-06-23T09:31:16.170 回答