如何在几秒钟后退出Java程序

时间:2013-04-01 16:29:28

标签: java system exit seconds

无论如何,我可以在几秒钟之后退出java程序,例如5秒。

我知道你可以使用以下方法退出java程序:

System.exit(0);

但我不确定0代表自此代码以来的秒数:

System.exit(10);

也会立即退出

5 个答案:

答案 0 :(得分:9)

System.exit(0)指定程序的退出错误代码。

你可以把它放在计时器上并安排任务

import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class TimedExit {
Timer timer = new Timer();
TimerTask exitApp = new TimerTask() {
public void run() {
    System.exit(0);
    }
};

public TimedExit() {
timer.schedule(exitApp, new Date(System.currentTimeMillis()+5*1000));
    }

}

然后你可以调用TimedExit()

答案 1 :(得分:8)

您可以在退出程序之前调用Thread.sleep()

// Your code goes here.

try 
{
   Thread.sleep(5000);
} 
catch (InterruptedException e) 
{
   // log the exception.
}

System.exit(0);

答案 2 :(得分:1)

来自System.exit(int)方法文档:

  

终止当前运行的Java虚拟机。争论   作为状态代码;按照惯例,非零状态代码   表示异常终止。

如果你需要在等待退出期间执行某些操作,你可以创建一个控制线程,它将等待正确的时间执行退出,如下所示:

public class ExitFewMiliseconds {

    public static void main(String args[]) {

        new Thread(new Runnable() {
            public void run() {
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.exit(0);
            }
        }).start();

        while (true) {
            System.out.println("I'm doing something");
        }
    }

}

如果在等待退出时没有执行任何操作,您只需使用Thread.sleep(ms)

即可

答案 3 :(得分:0)

传入System.exit(0)的0与退出前等待的时间无关。 Javadocs are your friend。来自javadoc:

  

该参数用作状态代码;按照惯例,非零状态   代码表示异常终止。

如果您真的需要这样做,其他答案已经涵盖了如何在退出前等待5秒。

答案 4 :(得分:0)

import java.util.Timer;
import java.util.TimerTask;

/**
 * Simple demo that uses java.util.Timer to schedule a task 
 * to execute once 5 seconds have passed.
 */
class Reminder {

    Timer timer;

    public Reminder(int seconds) {
        timer = new Timer();
        timer.schedule(new RemindTask(), seconds * 1000);
    }

    class RemindTask extends TimerTask {
        public void run() {
            System.out.format("Time's up!%n");
            System.exit();
            timer.cancel(); //Terminate the timer thread
        }
    }

    public static void main(String args[]) {
        new Reminder(10);
        System.out.format("Task scheduled.%n");
    }
}

通过这种方式,您可以使用Timer类并在特定时间间隔后退出系统