這個實現起來非常簡單,只需要遍歷當前的進程列表,如果包含有我們查詢的某個進程關鍵字,則說明這個進程正在啟用或運行,否則,沒有運行,下面我簡單介紹一下實現過程,感興趣的朋友可以嘗試一下,Windows環境和Linux環境基本類似:
Windows
Java測試代碼如下,基本思想先運行Tasklist命令,獲取當前系統運行的所有進程,然后循環讀取每個進程,與我們所要搜索的進程關鍵字進行匹配,如果包含有進程關鍵字(indexOf函數的返回值就不會是-1),則說明這個進程正在運行,否則,進程沒有運行:
程序運行截圖如下,這里我對進程名進行了紅色標記,如下,可以看出,當前搜索的chrome進程正在運行:
Linux
這里的Java代碼基本和前面的Windows平臺類似,唯一的區別就是運行“ps-aux”命令獲取當前系統的所有進程,然后循環遍歷進程列表,如果匹配到進程的關鍵字,則說明搜索的進程正在運行,否則,沒有運行:
程序運行截圖如下,這里我也用顏色對進程名進行了標記,如下,可以看出,當前的vsftpd進程正在運行:
至此,我們就完成了利用Java來判斷某個進程是否正在啟用或運行。總的來說,整個過程非常簡單,代碼也非常容易理解,只要你有一定的Java基礎,熟悉一下上面的代碼,很快就能掌握的,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
前段時刻測試的時辰發現客戶端,雙擊停筆多次回生成多次XXX.exe.所以在啟動時判定一下時辰有歷程已經啟動了,下面把代碼寫出來。Java代碼publicbooleangetProcess(){booleanflag=false;try{Processp=Runtime.getRuntime().exec("cmd/ctasklist");ByteArrayOutputStreambaos=newByteArrayOutputStream();InputStreamos=p.getInputStream();byteb[]=newbyte[256];while(os.read(b)>0)baos.write(b);Strings=baos.toString();//System.out.println(s);if(s.indexOf("Besttone.exe")>=0){System.out.println("yes");flag=true;}else{System.out.println("no");flag=false;}}catch(java.io.IOExceptionioe){}returnflag;}