Java Process類的詳解
公司主營業(yè)務(wù):網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出漢壽免費做網(wǎng)站回饋大家。
前言:
今天用了下Java.lang.Process類,只是初步的學(xué)習(xí),并沒有深入實踐,因為感覺它的用途并不是很大,偶爾才可能用上,如果要經(jīng)常使用它的人可以自行參考JDk文檔。
對Process類的簡要說明:
Process類是一個抽象類,方法都是抽象的,它封裝了一個進(jìn)程,也就是一個可執(zhí)行的程序 該類提供進(jìn)程的輸入、執(zhí)行輸出到進(jìn)程、等待進(jìn)程的完成和檢查進(jìn)程的退出狀態(tài)及銷毀進(jìn)程的方法
ProcessBuilder.start()和Runtime.exec方法創(chuàng)建一個本機進(jìn)程并返回Process子類的一個實例,該實例可以控制進(jìn)程并獲取相關(guān)的信息
其它的概要請參考JDK文檔
下面就開始舉幾個簡單的示例:
(1)執(zhí)行簡單的DOS命令,如打開一個記事本
package com.iwtxokhtd.other; import java.io.IOException; public class ProcessTest { public static void main(String[] args) { try { Process proc=Runtime.getRuntime().exec("notepad"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
package com.iwtxokhtd.other; import java.io.IOException; public class ProcessTest { public static void main(String[] args) { try { Process proc=Runtime.getRuntime().exec("notepad"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
(2)使用它的其它構(gòu)造方法執(zhí)行相關(guān)的命令,如下例:
package com.iwtxokhtd.other; import java.io.IOException; public class ProcessTest { public static void main(String[] args) { try { String exeFullPathName="C:/Program Files/Internet Explorer/IEXPLORE.EXE"; String message="www.google.com"; String []cmd={exeFullPathName,message}; Process proc=Runtime.getRuntime().exec(cmd); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
package com.iwtxokhtd.other; import java.io.IOException; public class ProcessTest { public static void main(String[] args) { try { String exeFullPathName="C:/Program Files/Internet Explorer/IEXPLORE.EXE"; String message="www.google.com"; String []cmd={exeFullPathName,message}; Process proc=Runtime.getRuntime().exec(cmd); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
執(zhí)行上述命令可以打開Google網(wǎng)站
(3)列出系統(tǒng)正在運行的所有進(jìn)程信息
package com.iwtxokhtd.other; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ListAllProcessTest { //列出所有的進(jìn)程信息 public static void main(String[] args) { BufferedReader br=null; try { Process proc=Runtime.getRuntime().exec("tasklist"); br=new BufferedReader(new InputStreamReader(proc.getInputStream())); @SuppressWarnings("unused") String line=null; System.out.println("打印所有正在運行的進(jìn)程信息"); while((line=br.readLine())!=null){ System.out.println(br.readLine()); } } catch (IOException e) { e.printStackTrace(); }finally{ if(br!=null){ try { br.close(); } catch (Exception e) { e.printStackTrace(); } } } } }
package com.iwtxokhtd.other; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ListAllProcessTest { //列出所有的進(jìn)程信息 public static void main(String[] args) { BufferedReader br=null; try { Process proc=Runtime.getRuntime().exec("tasklist"); br=new BufferedReader(new InputStreamReader(proc.getInputStream())); @SuppressWarnings("unused") String line=null; System.out.println("打印所有正在運行的進(jìn)程信息"); while((line=br.readLine())!=null){ System.out.println(br.readLine()); } } catch (IOException e) { e.printStackTrace(); }finally{ if(br!=null){ try { br.close(); } catch (Exception e) { e.printStackTrace(); } } } } }
(4)判斷一個具體的進(jìn)程是否正在運行,如下例:
package com.iwtxokhtd.other; import java.io.BufferedReader; import java.io.InputStreamReader; public class FindProcessExeTest { public static void main(String []args){ if(findProcess("QQ.exe")){ System.out.println("------判斷指定的進(jìn)程是否在運行------"); System.out.println("QQ.exe該進(jìn)程正在運行!"); }else{ System.out.println("------判斷指定的進(jìn)程是否在運行------"); System.out.println("QQ.exe該進(jìn)程沒有在運行!"); } } public static boolean findProcess(String processName){ BufferedReader br=null; try{ //下面這句是列出含有processName的進(jìn)程圖像名 Process proc=Runtime.getRuntime().exec("tasklist /FI /"IMAGENAME eq "+processName+"/""); br=new BufferedReader(new InputStreamReader(proc.getInputStream())); String line=null; while((line=br.readLine())!=null){ //判斷指定的進(jìn)程是否在運行 if(line.contains(processName)){ return true; } } return false; }catch(Exception e){ e.printStackTrace(); return false; }finally{ if(br!=null){ try{ br.close(); }catch(Exception ex){ } } } } }
package com.iwtxokhtd.other; import java.io.BufferedReader; import java.io.InputStreamReader; public class FindProcessExeTest { public static void main(String []args){ if(findProcess("QQ.exe")){ System.out.println("------判斷指定的進(jìn)程是否在運行------"); System.out.println("QQ.exe該進(jìn)程正在運行!"); }else{ System.out.println("------判斷指定的進(jìn)程是否在運行------"); System.out.println("QQ.exe該進(jìn)程沒有在運行!"); } } public static boolean findProcess(String processName){ BufferedReader br=null; try{ //下面這句是列出含有processName的進(jìn)程圖像名 Process proc=Runtime.getRuntime().exec("tasklist /FI /"IMAGENAME eq "+processName+"/""); br=new BufferedReader(new InputStreamReader(proc.getInputStream())); String line=null; while((line=br.readLine())!=null){ //判斷指定的進(jìn)程是否在運行 if(line.contains(processName)){ return true; } } return false; }catch(Exception e){ e.printStackTrace(); return false; }finally{ if(br!=null){ try{ br.close(); }catch(Exception ex){ } } } } }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
網(wǎng)站題目:JavaProcess類的詳解及實例代碼
分享路徑:http://jinyejixie.com/article30/ghhiso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、企業(yè)建站、標(biāo)簽優(yōu)化、響應(yīng)式網(wǎng)站、云服務(wù)器、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)