java如何结束程序
结束 Java 程序的几种方法
System.exit() 方法
使用 System.exit(int status) 可以立即终止 Java 虚拟机(JVM)的运行。参数 status 为退出状态码,通常 0 表示正常退出,非零值表示异常终止。
示例代码:
System.exit(0); // 正常退出程序
Runtime.getRuntime().halt() 方法
与 System.exit() 类似,但不会执行关闭钩子(shutdown hooks)或终结器(finalizers),直接强制终止程序。
示例代码:

Runtime.getRuntime().halt(0); // 强制终止
抛出未捕获异常
如果主线程或其他线程抛出未捕获的异常,且未被任何异常处理器捕获,程序会终止。
示例代码:
throw new RuntimeException("强制终止程序");
终止所有非守护线程
Java 程序在所有非守护线程(non-daemon threads)结束时自动退出。可以通过中断线程或结束主线程来触发终止。
示例代码(中断主线程):

Thread.currentThread().interrupt();
注意事项
System.exit()是推荐的标准方法,但会跳过finally块和关闭钩子的执行。- 守护线程(daemon threads)不会阻止 JVM 退出,而非守护线程会。
- 在 GUI 程序(如 Swing/JavaFX)中,直接调用
System.exit()可能导致资源未释放,建议先关闭窗口或调用平台相关退出方法。
示例场景
正常退出程序
public class Main {
public static void main(String[] args) {
System.out.println("程序开始");
System.exit(0); // 显式退出
}
}
通过异常终止
public class Main {
public static void main(String[] args) {
if (someErrorCondition) {
throw new Error("致命错误");
}
}
}






