javadestroy
⑴ java怎麼殺掉java進程
java中有調用外部程序的類,Runtime.getRuntime().exec("./**.exe");此函數返回的是一個Process 對象,該對象在創建後,可以對它進行 destroy () 殺掉子進程、 waitFor () 導致當前線程等待,如有必要,一直要等到由該 Process 對象表示的進程已經終止。 如下例子可以殺掉已經打開的文本進程:
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
publicclassTest
{
publicstaticvoidmain(String[]args)
{
try
{
String[]cmd=
{"notepad.exe"};
Processproc=Runtime.getRuntime().exec(cmd);//開啟文本
BufferedReaderin=newBufferedReader(newInputStreamReader(proc
.getInputStream()));
Stringstring_Temp=in.readLine();
while(string_Temp!=null)
{
System.out.println(string_Temp);
if(string_Temp.indexOf("notepad.exe")!=-1)
Runtime.getRuntime().exec("Taskkill/IMnotepad.exe");
string_Temp=in.readLine();
}
}
catch(Exceptione)
{
//結束進程
}
}
結果如下:
⑵ java 怎麼取外部程序運行後的返回值
JAVA 中 process 類的使用
Process是一個抽象類 封裝了一個進程
創建 process
Process p = Runtime.getRuntime().exec(cmd); cmd 是字元串類型 也可以是字元串類型的數組 內容就是 命令行
Process p =ProcessBuilder.start();
Process 類提供了子進程的輸入流,子進程的輸出流子進程的輸入流,等待進程完成,檢查進程的退出狀態以及銷毀進程的方法;
創建的子進程沒有自己的控制台或終端,其所有的io操作都是通過(輸入流、輸出流、錯誤流)重定向到父進程中。
destroy()
殺掉子進程。
exitValue()
返回子進程的出口值。
InputStream getErrorStream()
獲得子進程的錯誤流。
InputStream getInputStream()
獲得子進程的輸入流。
OutputStream getOutputStream()
獲得子進程的輸出流。
waitFor()
導致當前線程等待,如果必要,一直要等到由該 Process 對象表示的進程已經終止。
-------分割線,以上來自網路-------
其中的exitValue()函數返回值就是你需要的東西。按照你的示例,return 12345,取得的值不一定等於12345,因為每個不同的shell對於程序退出的返回值是有自己的定義的,不一定是把程序return的值直接返回。可以查看各類shell的編程幫助。