① java進程怎麼安全關閉
就是有個main方法在死循環的查數據處理數據。然後要更新代碼,不能直接kill呀,kill會把正在處理的數據弄丟,就需要在個監控,可以再跑的過程里讓他停止讀取數據,然後把內存里的數據處理完了再關閉
② 如何用Java關閉一個進程
解決這個問題,要看這個進程是java程序自定義的進程,還是操作系統的進程,操作系統的進程,又可以分為windows進程和linux進程
一、針對操作系統的進程:
1,首先java用戶,要具有操作進程的許可權
2. 針對windows操作系統的進程,比如QQ進程:
Stringcommand="taskkill/f/imQQ.exe";
Runtime.getRuntime().exec(command);
其中:taskkill 是命令名稱,/f /im 是參數,QQ.exe是進程的可執行文件。
3.針對Linux操作系統
Stringcommand="kill/f/imQQ.exe";
Runtime.getRuntime().exec(command);
二、在Java程序中自定義的進程
思路:在線程中設置一個標志變數,當這個變數的值在外界被改變的時候,有機會結束運行的線程
publicclassT{
publicstaticvoidmain(String[]args){
//啟動線程
MyThreadthread=newMyThread();
newThread(thread).start();
//你的其它的工作,此時線程在運行中
//你不想讓線程幹活了,停掉它
//注意,這只是一個標志,具體線程何時停,並不能精確控制
thread.allDone=true;
}
}
{
booleanvolatileallDone=false;
publicvoidrun(){
//每次循環都檢測標志
//如果設置停止標志時已經在循環里
//則最長需要等待一個循環的時間才能終止
while(!allDone){
//循環里的工作
}
}
}
③ 有沒有java進程kill(或者Terminate)掉之後,然後執行的方法嗎請大神指點 如果能解決我的問題50分送上
可以用Future future=executorServer.submit(new callable(){...})//提交線程。
future.cancle();//取消線程
executeServer.submit(new callable(){...})//再次執行線程
④ java怎麼刪除被進程佔用的文件
刪除被進程佔用的文件,可以先判斷文件是否被刪除,如果沒有,則讓系統強制回收資源,進行文件的刪除,示例如下:
booleanresult=f.delete();//判斷是否刪除完畢
if(!result)
{
System.gc();//系統進行資源強制回收
f.delete;
}
⑤ linux java進程kill後 如何啟動呢
java -jar ****.jar即可
⑥ 如何通知java進程結束
處理數據的程序段用try catch包圍起來
1、如果出問題了,記錄到當前處理數據的節點,下次再啟動,讀取上次的節點接著處理。
2、如果沒出問題,普通的java程序運行完畢,自動就會結束進程了,實在不行,用System.exit(0);退出程序
⑦ java 怎麼強制關閉 一個線程
不建議 強制關閉 有時候強制關閉會拋出異常 或者根本關閉不了
你在線程中設置個boolean 變數 flag 加個判斷
你想關閉的時候控制一下 當flag==false的時候 就跳出線程
2樓的 如果線程不阻塞,你調用interrup方法根本不起作用 只有阻塞時才起作用
⑧ springcloud jar包啟動會把另外一個java進程kill掉
啟動java後台進程有兩種方式:
1. 絕對路徑/bin/java() : 後台運行,你關掉終端會停止運行
2. nohup 絕對路徑/bin/java (java程序) : 後台運行,你關掉終端也會繼續運行
java相關操作有:
查看java進程信息:
ps -ef | grep java
2.結束java進程:
kill -9 java程序名稱
⑨ 利用linux的命令kill -9殺死java程序會有什麼後果
正常的java程序,你啟動,ctrl+c退出的時候也跟著退出了。
用nohup /run.sh & 這樣的需要用kill -9 或者你自己寫一個特殊的sh用來專門殺這個進程也可以、