java如何退出程序
退出 Java 程序的方法
在 Java 中,可以通过多种方式终止程序的执行。以下是几种常见的方法:
System.exit() 方法
使用 System.exit(int status) 可以立即终止当前运行的 Java 虚拟机。参数 status 是一个整数,通常 0 表示正常退出,非零值表示异常退出。
System.exit(0); // 正常退出
System.exit(1); // 异常退出
Runtime.getRuntime().halt() 方法
与 System.exit() 类似,Runtime.getRuntime().halt(int status) 也会终止 JVM,但它不会执行关闭钩子(shutdown hooks)或终结器(finalizers)。
Runtime.getRuntime().halt(0);
抛出异常终止程序
通过抛出未捕获的异常,可以导致程序终止。例如:

throw new RuntimeException("程序终止");
主线程自然结束
如果主线程(main 方法)执行完毕,且没有其他非守护线程在运行,程序会自动退出。
public static void main(String[] args) {
System.out.println("程序执行完毕");
}
使用 return 语句
在 main 方法中使用 return 语句可以提前结束程序的执行。

public static void main(String[] args) {
if (args.length == 0) {
System.out.println("无参数输入,程序退出");
return;
}
System.out.println("程序继续执行");
}
关闭 GUI 应用程序
对于 Swing 或 JavaFX 应用程序,关闭主窗口通常会终止程序。可以调用 JFrame.dispose() 或 Platform.exit() 来关闭 GUI 应用。
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.dispose(); // 关闭窗口并退出程序
使用守护线程
守护线程(Daemon Thread)会在所有非守护线程结束后自动终止。可以通过设置线程为守护线程来控制程序的生命周期。
Thread thread = new Thread(() -> {
while (true) {
System.out.println("守护线程运行中");
}
});
thread.setDaemon(true);
thread.start();
注意事项
System.exit()会立即终止 JVM,可能导致资源未正确释放。- 抛出异常终止程序可能不利于调试和错误处理。
- 在多线程环境中,确保所有非守护线程都已结束,否则程序可能不会终止。
根据具体需求选择合适的方法退出程序。






