killalljava
Ⅱ java程序通過命令停止
tasklist命令找到該程序的進程,taskkill殺掉該進程。
tomcat的啟動、結束bat都是調用org.apache.catalina.startup.Bootstrap這個類實現的,startup.bat最終會執行Bootstrap.java里的
publicvoidstart()throwsException{
if(catalinaDaemon==null)init();
Methodmethod=catalinaDaemon.getClass().getMethod("start",(Class[])null);
method.invoke(catalinaDaemon,(Object[])null);
}
shutdown.bat最終會執行Bootstrap里的
publicvoidstopServer()throwsException{
Methodmethod=catalinaDaemon.getClass().getMethod("stopServer",(Class[])null);
method.invoke(catalinaDaemon,(Object[])null);
}
你也可以這樣寫一個類來控製程序的啟動、終止,bat就調用對應的方法。
Ⅲ linux的pkill -9f java命令是什麼意思
pkill -9f java命令為強制殺死java進程
pkill用法:
作用:通過程序的名字,直接殺死所有進程
用法:#pkill 正在運行的程序名
舉例:
root@fcola:/# ps -ef | grep sendmail
root 17723 15753 0 01:08 pts/2 00:00:00 vim sendmail.mc
root 19022 1 0 01:26 ? 00:00:03 gedit /etc/mail/sendmail.mc
root 21480 15753 0 02:03 pts/2 00:00:00 grep sendmail
root@fcola:/# pkill sendmail
另外
pkill 和killall 應用方法差不多,也是直接殺死運行中的程序;如果您想殺掉單個進程,請用kill 來殺掉。
應用方法:
#pkill 正在運行的程序名
舉例:
[root@localhost beinan]# pgrep -l gaim
2979 gaim
[root@localhost beinan]# pkill gaim
也就是說:
kill 對應的是 PID
pkill 對應的是COMMAND
Ⅳ 如何用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){
//循環里的工作
}
}
}
Ⅳ 用bat腳本結束指定java程序和java進程以及窗口,求指導
taskkill/f/im"java.exe"/t
強制結束進程中的java.exe和任何用java.exe啟動的其它進程。
Ⅵ linux如何正常關閉java服務,不用kill -9
你調用的分析服務應該是多線程的吧,否則CTRL+C就可以停掉當前的程序了,java虛擬機也無非就是個程序。當你的程序中含有沒有結束條件的死循環線程時,java虛擬機是無法停止運轉的,所以就需要你的程序能接受一個停止條件!
Ⅶ java中關閉某個程序的進程 cmd /c taskkill /pid 具體的某個pid
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStream;
importjava.io.OutputStreamWriter;
importjava.util.LinkedList;
publicclassCommand{
privatejava.lang.Processp;
privateInputStreamis;
privateOutputStreamos;
privateBufferedWriterbw;
privateBufferedReaderbr;
privateProcessBuilderpb;
privateInputStreamstdErr;
publicCommand(){
}
//獲取Process的輸入,輸出流
publicvoidsetCmd(Stringcmd){
try{
p=Runtime.getRuntime().exec(cmd);
os=p.getOutputStream();
is=p.getInputStream();
stdErr=p.getErrorStream();
}catch(IOExceptione){
System.err.println(e.getMessage());
}
}
//向Process輸出命令
publicvoidwriteCmd(Stringcmd){
try{
bw=newBufferedWriter(newOutputStreamWriter(os));
bw.write(cmd);
bw.newLine();
bw.flush();
bw.close();
}catch(Exceptione){
e.printStackTrace();
}
}
//讀出Process執行的結果
publicStringreadCmd(){
StringBuffersb=newStringBuffer();
br=newBufferedReader(newInputStreamReader(is));
Stringbuffer=null;
try{
while((buffer=br.readLine())!=null){
sb.append(buffer+" ");
}
System.out.println(p.waitFor());
}catch(Exceptione){
e.printStackTrace();
}
returnsb.toString();
}
//將命令一股腦塞入list中
publicLinkedList<String>doCmd(LinkedList<String>lists){
LinkedList<String>list=newLinkedList<String>();
for(Strings:lists){
writeCmd(s);
list.add(readCmd());
}
returnlist;
}
publicstaticvoidmain(String[]args){
Commandcmd=newCommand();
cmd.setCmd("cmd");
cmd.writeCmd("TASKKILL/PID1230");
System.out.println(cmd.readCmd());
//LinkedList<String>list=newLinkedList<String>();
//list.add("dir/b");
//list=cmd.doCmd(list);
//for(Strings:list){
//System.out.print(s);
//}
}
}