java運(yùn)行出現(xiàn)死循環(huán)時(shí),在dos命令行界面下,可以直接使用ctrl+c的組合鍵來停止程序,ctrl+c組合鍵在dos命令行界面中可以不用等待程序正常運(yùn)行結(jié)束,直接終止程序;還可以直接點(diǎn)擊dos命令行界面窗口的關(guān)閉按鈕來結(jié)束程序。在開發(fā)工具eclipse或者M(jìn)yeclipse中,可以直接點(diǎn)擊運(yùn)行控制臺(tái)中的紅色按鈕來結(jié)束程序。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了紹興免費(fèi)建站歡迎大家使用!
在java程序中,可以使用java.lang.System的exit方法來終止程序的執(zhí)行,publicstaticvoidmain(String[]args){System.out.println("開始進(jìn)入程序");//dosomethingSystem.out.println("程序準(zhǔn)備退出了!");System.exit(0);//下面這句話將
1.
public class TestShutDownHook {
2.
public TestShutDownHook() {
3.
doShutDownWork();
4.
}
5.
private void doShutDownWork() {
6.
Runtime run=Runtime.getRuntime();//當(dāng)前 Java 應(yīng)用程序相關(guān)的運(yùn)行時(shí)對(duì)象。
7.
run.addShutdownHook(new Thread(){ //注冊(cè)新的虛擬機(jī)來關(guān)閉鉤子
8.
@Override
9.
public void run() {
10.
//程序結(jié)束時(shí)進(jìn)行的操作
11.
System.out.println("程序結(jié)束調(diào)用");
12.
}
13.
});
14.
}
15.
public static void main(String[] args) {
16.
new TestShutDownHook();
17.
for (int i = 0; i 1000; i++) { // 在這里增添您需要處理代碼 }
18.
System.out.println(i);
19.
}
20.
}
21.
}
在java程序中,可以使用java.lang.System的exit方法來終止程序的執(zhí)行,
12345678
public static void main(String[] args) { System.out.println("開始進(jìn)入程序..."); //do something System.out.println("程序準(zhǔn)備退出了!"); System.exit(0); //下面這句話將不會(huì)打印出來 System.out.println("程序已經(jīng)退出了!");}
但是使用exit方法的本質(zhì)是終止了JVM的運(yùn)行,如果同時(shí)運(yùn)行了另外一個(gè)程序,使用exit方法同樣也會(huì)使該程序也終止,要避免此種情況可以使用interrupt()來中斷退出一個(gè)獨(dú)立運(yùn)行的過程。對(duì)于多線程程序,必須要關(guān)閉各個(gè)非守護(hù)線程。
1234567891011121314151617181920212223
public static void main(String[] args) { System.out.println("開始進(jìn)入程序..."); //do something new Thread(){ public void run() { while (true) { System.out.println("我是另外的線程..."); try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }.start(); //獲取man線程 Thread main = Thread.currentThread(); System.out.println(main.getName()); main.interrupt(); System.out.println("main線程已經(jīng)退出了,但是不影響其他線程運(yùn)行!"); }
只有在程序非正常退出時(shí),才使用exit方法退出程序。
tasklist命令找到該程序的進(jìn)程,taskkill殺掉該進(jìn)程。
tomcat的啟動(dòng)、結(jié)束bat都是調(diào)用org.apache.catalina.startup.Bootstrap這個(gè)類實(shí)現(xiàn)的,startup.bat最終會(huì)執(zhí)行Bootstrap.java里的
public?void?start()?throws?Exception?{????
if(?catalinaDaemon==null?)?init();
Method?method?=?catalinaDaemon.getClass().getMethod("start",?(Class?[]?)null);????
method.invoke(catalinaDaemon,?(Object?[])null);????
}
shutdown.bat最終會(huì)執(zhí)行Bootstrap里的
public?void?stopServer()?throws?Exception?{
Method?method?=?catalinaDaemon.getClass().getMethod("stopServer",?(Class?[])?null);????
method.invoke(catalinaDaemon,?(Object?[])?null);????
}
你也可以這樣寫一個(gè)類來控制程序的啟動(dòng)、終止,bat就調(diào)用對(duì)應(yīng)的方法。
break語句用在switch中,如果是別的中斷的話,可以直接用個(gè)return即可解決,希望能幫到你。
當(dāng)前名稱:java代碼終止程序,java終止命令
分享鏈接:http://muchs.cn/article42/hcjihc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、App開發(fā)、動(dòng)態(tài)網(wǎng)站、微信小程序、關(guān)鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)