在java程序中,可以使用javalangSystem的exit方法来终止程序的执行,
12345678
public static void main(String[] args) { Systemoutprintln("开始进入程序"); //do something Systemoutprintln("程序准备退出了!"); Systemexit(0); //下面这句话将不会打印出来 Systemoutprintln("程序已经退出了!");}
但是使用exit方法的本质是终止了JVM的运行,如果同时运行了另外一个程序,使用exit方法同样也会使该程序也终止,要避免此种情况可以使用interrupt()来中断退出一个独立运行的过程。对于多线程程序,必须要关闭各个非守护线程。
1234567891011121314151617181920212223
public static void main(String[] args) { Systemoutprintln("开始进入程序"); //do something new Thread(){ public void run() { while (true) { Systemoutprintln("我是另外的线程"); try { Threadsleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block eprintStackTrace(); } } } }start(); //获取man线程 Thread main = ThreadcurrentThread(); Systemoutprintln(maingetName()); maininterrupt(); Systemoutprintln("main线程已经退出了,但是不影响其他线程运行!"); }
只有在程序非正常退出时,才使用exit方法退出程序。
一般出现这种情况是程序还有线程没有结束。处理方法有二:
1、记录下自己开启的线程(比如定时器),并手动destroy。
2、监听窗口的关闭事件,执行强制退出。代码示例如下:
myWindowaddWindowListener(new WindowAdapter() {@Override
public void windowClosed(WindowEvent e) {
Systemexit(0);// 强制退出
}
});
String flag = "n";Scanner input = new Scanner(Systemin);do{Systemoutprintln("请输入数字1:");int a = inputnextInt();Systemoutprintln("请输入数字2:");int b = inputnextInt();Systemoutprintln(a+"+"+b+"="+(a+b));Systemoutprintln("是否继续?(y/n)");flag = inputnext();}while(flagequals("y"));将此放入main函数中可以实现你想要的效果
如果在一个循环里,想退出这个循环请用break;
如果在一个method中,想不执行下面的代码直接退出这个method请用return;
如果你想要程序直接中断退出,不执行后面的任何代码,请用Systemexit(0);
以上就是关于java怎么强行终止程序全部的内容,包括:java怎么强行终止程序、JAVA结束了一个程序,虚拟机还占用内存怎么解决、Java中怎样让一个程序结束后自动重新运行该程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)