這個實現(xiàn)起來非常簡單,只需要遍歷當(dāng)前的進(jìn)程列表,如果包含有我們查詢的某個進(jìn)程關(guān)鍵字,則說明這個進(jìn)程正在啟用或運行,否則,沒有運行,下面我簡單介紹一下實現(xiàn)過程,感興趣的朋友可以嘗試一下,Windows環(huán)境和Linux環(huán)境基本類似:
Windows
Java測試代碼如下,基本思想先運行Tasklist命令,獲取當(dāng)前系統(tǒng)運行的所有進(jìn)程,然后循環(huán)讀取每個進(jìn)程,與我們所要搜索的進(jìn)程關(guān)鍵字進(jìn)行匹配,如果包含有進(jìn)程關(guān)鍵字(indexOf函數(shù)的返回值就不會是-1),則說明這個進(jìn)程正在運行,否則,進(jìn)程沒有運行:
程序運行截圖如下,這里我對進(jìn)程名進(jìn)行了紅色標(biāo)記,如下,可以看出,當(dāng)前搜索的chrome進(jìn)程正在運行:
Linux
這里的Java代碼基本和前面的Windows平臺類似,唯一的區(qū)別就是運行“ps-aux”命令獲取當(dāng)前系統(tǒng)的所有進(jìn)程,然后循環(huán)遍歷進(jìn)程列表,如果匹配到進(jìn)程的關(guān)鍵字,則說明搜索的進(jìn)程正在運行,否則,沒有運行:
程序運行截圖如下,這里我也用顏色對進(jìn)程名進(jìn)行了標(biāo)記,如下,可以看出,當(dāng)前的vsftpd進(jìn)程正在運行:
至此,我們就完成了利用Java來判斷某個進(jìn)程是否正在啟用或運行。總的來說,整個過程非常簡單,代碼也非常容易理解,只要你有一定的Java基礎(chǔ),熟悉一下上面的代碼,很快就能掌握的,網(wǎng)上也有相關(guān)教程和資料,介紹的非常詳細(xì),感興趣的話,可以搜一下,希望以上分享的內(nèi)容能對你有所幫助吧,也歡迎大家評論、留言進(jìn)行補充。
前段時刻測試的時辰發(fā)現(xiàn)客戶端,雙擊停筆多次回生成多次XXX.exe.所以在啟動時判定一下時辰有歷程已經(jīng)啟動了,下面把代碼寫出來。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;}