如何从代码中关闭java应用程序?
答案 0 :(得分:14)
您致电System.exit
:
System.exit(0);
答案 1 :(得分:5)
我认为,按照大多数标准,System.exit()是关闭应用程序的一种非常OOP方式,我总是被告知正确的方法是从main返回。这有点痛苦,需要一个好的设计,但我相信它是“正确的”退出方式
答案 2 :(得分:3)
如果您要终止Swing
应用,我会做EXIT_ON_CLOSE
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
在System.exit(0)
之前。这样做更好,因为您可以在实际离开应用程序之前编写Window Listener来进行一些清理操作。
该窗口监听器允许您从代码中退出应用程序:
public void windowClosing(WindowEvent e) {
displayMessage("WindowListener method called: windowClosing.");
//A pause so user can see the message before
//the window actually closes.
ActionListener task = new ActionListener() {
boolean alreadyDisposed = false;
public void actionPerformed(ActionEvent e) {
if (frame.isDisplayable()) {
alreadyDisposed = true;
frame.dispose();
}
}
};
Timer timer = new Timer(500, task); //fire every half second
timer.setInitialDelay(2000); //first delay 2 seconds
timer.setRepeats(false);
timer.start();
}
public void windowClosed(WindowEvent e) {
//This will only be seen on standard output.
displayMessage("WindowListener method called: windowClosed.");
}
答案 3 :(得分:2)
如果您正在运行某个应用程序,System.exit
将起作用。
System.exit(int);
但是,在applet中,由于浏览器权限,您必须按照applet.getAppletContext().showDocument("landingpage.html");
的方式执行某些操作。它不仅可以让您关闭浏览器窗口。
答案 4 :(得分:1)
您使用System.exit(int)
,其中值0
表示应用程序已成功关闭,而任何其他值通常表示出现问题。通常,如果应用程序未成功关闭,您只会看到返回值1
以及打印到sysout或syserr的消息。
一切都很好,应用程序正确关闭:
System.exit(0)
出了问题,申请没有正确关闭:
System.err.println("some meaningful message"); System.exit(1)