如何退出无休止的 Java 程序并打印消息?

How to exit from an endless Java program and print a message?

假设我有一个 java 程序(实际上我写了一个 CLI),它进入了一个无限循环,并且在该循环中它递增了一个计数器。当我从命令行按 Ctrl + C 退出程序时,我可以打印计数器的值然后退出吗?假设我有一个像这样的函数:

public void count(){
    int count = 1;
    while (count>0) {
        count++;
    }
}

现在,我调用这段代码并开始执行。过了一会儿,我在终端上按下 Ctrl + C,程序被强制退出。当它退出时,我能以某种方式打印 count 的值然后退出吗?

注意:我并没有在我的程序中完全这样做。我只是想弄清楚是否有一种方法可以强制退出程序并在强制退出时向控制台打印一些内容。

您可以暂时使用break()方法。 例如:

int count = 1; 
while (count>0)
{
 count++;
 if(count==10){
      break();
 }
 }
 System.out.println(String.valueof(count));

此代码在计数等于 10 时结束

从另一个站点稍微复制意大利面(尽管 Whosebug 更喜欢这里的答案)

public class Main {
  public static var message; //can be String, int, whatever.
  static class ForceClosedMessage extends Thread {
    public void run() {
      System.out.println(message);
    }
  }
  public static void main(String... args) {
    Runtime.getRuntime().addShutdownHook(newForceClosedMessage());
    //Go about your business
  }
}