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

时间:2012-06-23 08:57:51

标签: java windows console

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

3 个答案:

答案 0 :(得分:1)

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

看起来http://www.devdaily.com/java/edu/pj/pj010005可以帮助你。

答案 1 :(得分:0)

您是否注册了shutdownhook?当你中断它时,JVM会调用它。在那里你可以干净地终止你的申请。

要记住的一件事:您启动的任何(后台)线程都应使用Thread.setDaemon(true)标记为守护程序线程,否则JVM将不会终止,因为它只会在所有非守护程序线程完成后终止。也许这就是为什么即使你按Ctrl-C

你的应用程序仍然“在后台”

答案 2 :(得分: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..................


  }
}