Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有可中止的长操作的Java控制台应用程序_Java_Windows_Console - Fatal编程技术网

具有可中止的长操作的Java控制台应用程序

具有可中止的长操作的Java控制台应用程序,java,windows,console,Java,Windows,Console,我正在用Java编程一个控制台应用程序,可以用来监视某个网站。此操作可以是无限的,直到中止为止。只按CTRL+C组合键中止它是不起作用的,因为应用程序仍在后台运行。(我正在使用Windows,但它应该是可移植的。)如果用户输入某个单词,为什么不能等待用户输入并终止程序 看起来可以帮你解决问题。你注册了关机钩吗?当您中断它时,JVM会调用它。在那里,您可以完全终止您的应用程序 需要记住的一点是:您启动的任何(后台)线程都应该使用thread.setDaemon(true)标记为守护线程,否则JVM

我正在用Java编程一个控制台应用程序,可以用来监视某个网站。此操作可以是无限的,直到中止为止。只按CTRL+C组合键中止它是不起作用的,因为应用程序仍在后台运行。(我正在使用Windows,但它应该是可移植的。)

如果用户输入某个单词,为什么不能等待用户输入并终止程序


看起来可以帮你解决问题。

你注册了关机钩吗?当您中断它时,JVM会调用它。在那里,您可以完全终止您的应用程序

需要记住的一点是:您启动的任何(后台)线程都应该使用
thread.setDaemon(true)
标记为守护线程,否则JVM将不会终止,因为它只有在所有非守护线程完成时才会终止。也许这就是为什么即使按Ctrl-C,应用程序仍保持在“后台”的原因

1.使用布尔变量来确定用户何时想要终止程序

2.创建一个无限循环来监控网站,并在其中检查网站的状态 布尔变量

例如:


为什么你不能等待用户输入并在用户输入某个单词时终止程序?@Austin Java怎么可能做到这一点?看起来可以帮助你。@Austin将此作为你的答案,我会接受的-谢谢!
boolean isGoing = true;

   String s = null;

    public void monitor(){

    while(isGoing){

       if(s.compareToIgnoreCase(new Scanner(System.in).nextLine()) == 0){

        break;
    }

   // monitor here..................


  }
}