java获取所有进程_Java 获取系统的进程列表
前幾天發表了《Java 定時啟動服務》文章,現在發表這篇文檔《Java 獲取系統的進程列表》,看似聯系不大,實質在某些需求上還是有所關系。比如現在有這個需求:定時器啟動服務時,要求啟動一個“exe進程”來完成一些操作(下載圖片),這時需要出入一個參數。但事實上我們已經獲取到要出入的參數列表,當我們不能直接去循環遍歷參數列表,因為這樣的話,如果參數列表項比較多,那么每次循環都要啟動一個“exe進程”,可能直接導致系統內存不足而死機。如果每次啟動服務時,我們判斷系統進程中是否存在該“exe進程”,或者判斷該“exe進程”數不大于某個范圍值,再啟動服務就可以很好的避免這個問題了。下面直接上代碼:
ProcessListTest.java
package com.minimax.listeren;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
*
* @包名 :com.minimax.listeren
* @文件名 :ProcessListTest.java
* @類描述 :判斷系統進程是否存在
* @作者 :Andy.wang
* @創建時間 :2014-3-5上午11:25:26
* @更改人 :
* @更改時間 :
*/
public class ProcessListTest {
public static void main(String[] args) throws IOException {
System.out.println(ProcessListTest.isRunning("QQ.exe"));
}
/**
*
* @方法名 :isRunning
* @方法描述 :判斷系統進程是否存在
* @創建者 :Andy.wang
* @創建時間 :2014-3-5上午11:25:46
* @param exeName :進程名
* @return
* 返回類型 :boolean
*/
public static boolean isRunning(String exeName) {
Process proc;
try {
proc = Runtime.getRuntime().exec("tasklist");
BufferedReader br = new BufferedReader(new InputStreamReader(proc
.getInputStream()));
String info = br.readLine();
while (info != null) {
System.out.println(info);
if (info.indexOf(exeName) >= 0) {
return true;
}
info = br.readLine();
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(false);
return false;
}
}
測試輸出結果:
?����?????????????????????? PID �?��?????????? �?#?????? �?�?��
========================= ====== ================ ======== ============
System Idle Process??????????? 0 Console???????????????? 0???????? 16 K
System???????????????????????? 4 Console???????????????? 0???????? 24 K
smss.exe???????????????????? 876 Console???????????????? 0???????? 44 K
csrss.exe??????????????????? 952 Console???????????????? 0???? 11,144 K
winlogon.exe???????????????? 988 Console???????????????? 0????? 3,796 K
services.exe??????????????? 1032 Console???????????????? 0????? 1,492 K
lsass.exe?????????????????? 1044 Console???????????????? 0????? 2,340 K
ibmpmsvc.exe??????????????? 1192 Console???????????????? 0??????? 200 K
svchost.exe???????????????? 1224 Console???????????????? 0????? 1,660 K
svchost.exe???????????????? 1292 Console???????????????? 0????? 1,316 K
svchost.exe???????????????? 1332 Console???????????????? 0????? 9,560 K
svchost.exe???????????????? 1372 Console???????????????? 0??????? 200 K
S24EvMon.exe??????????????? 1428 Console???????????????? 0????? 1,308 K
svchost.exe???????????????? 1644 Console???????????????? 0????? 1,768 K
svchost.exe???????????????? 1708 Console???????????????? 0??????? 228 K
ZhuDongFangYu.exe?????????? 1732 Console???????????????? 0????? 2,272 K
spoolsv.exe???????????????? 2020 Console???????????????? 0??????? 820 K
scardsvr.exe???????????????? 168 Console???????????????? 0??????? 356 K
explorer.exe???????????????? 384 Console???????????????? 0???? 13,076 K
SGTool.exe?????????????????? 640 Console???????????????? 0??????? 504 K
TSVNCache.exe??????????????? 696 Console???????????????? 0????? 1,964 K
SGImeGuard.exe?????????????? 784 Console???????????????? 0????? 1,392 K
360tray.exe????????????????? 844 Console???????????????? 0???? 25,836 K
smax4pnp.exe???????????????? 804 Console???????????????? 0??????? 580 K
SynTPEnh.exe???????????????? 864 Console???????????????? 0????? 2,792 K
ctfmon.exe?????????????????? 884 Console???????????????? 0??????? 460 K
360sd.exe??????????????????? 944 Console???????????????? 0????? 1,768 K
SynTPLpr.exe??????????????? 1480 Console???????????????? 0??????? 304 K
AlipaySecSvc.exe???????????? 240 Console???????????????? 0????? 3,060 K
EvtEng.exe?????????????????? 304 Console???????????????? 0??????? 500 K
nmesrvc.exe????????????????? 776 Console???????????????? 0???????? 44 K
unsecapp.exe??????????????? 1848 Console???????????????? 0???????? 48 K
wmiprvse.exe??????????????? 2084 Console???????????????? 0??????? 472 K
nmesrvc.exe???????????????? 2204 Console???????????????? 0???????? 40 K
isqlplussvc.exe???????????? 2248 Console???????????????? 0??????? 200 K
TNSLSNR.EXE???????????????? 2616 Console???????????????? 0????? 3,100 K
java.exe??????????????????? 2648 Console???????????????? 0????? 6,028 K
oracle.exe????????????????? 2744 Console???????????????? 0???? 70,352 K
oracle.exe????????????????? 2916 Console???????????????? 0???? 70,516 K
oracle.exe????????????????? 2948 Console???????????????? 0??? 110,964 K
oracle.exe????????????????? 3012 Console???????????????? 0??? 112,136 K
oracle.exe????????????????? 3128 Console???????????????? 0???? 71,512 K
pcas.exe??????????????????? 3180 Console???????????????? 0????? 2,284 K
360rp.exe?????????????????? 3336 Console???????????????? 0???? 25,020 K
RegSrvc.exe???????????????? 3728 Console???????????????? 0???????? 52 K
svchost.exe???????????????? 3756 Console???????????????? 0???????? 80 K
WLIDSVC.EXE???????????????? 3796 Console???????????????? 0??????? 464 K
cmd.exe???????????????????? 3000 Console???????????????? 0???????? 44 K
cmd.exe???????????????????? 2976 Console???????????????? 0???????? 48 K
perl.exe??????????????????? 3948 Console???????????????? 0????? 1,644 K
perl.exe??????????????????? 3992 Console???????????????? 0????? 1,636 K
WLIDSVCM.EXE??????????????? 2484 Console???????????????? 0???????? 48 K
360AutoClean.exe??????????? 3056 Console???????????????? 0??????? 500 K
eclipse.exe???????????????? 3256 Console???????????????? 0??? 420,216 K
emagent.exe????????????????? 508 Console???????????????? 0????? 6,508 K
perl.exe??????????????????? 2936 Console???????????????? 0???????? 36 K
perl.exe??????????????????? 2940 Console???????????????? 0???????? 36 K
perl.exe??????????????????? 2812 Console???????????????? 0???????? 40 K
perl.exe??????????????????? 4040 Console???????????????? 0???????? 36 K
perl.exe??????????????????? 2848 Console???????????????? 0???????? 36 K
perl.exe??????????????????? 2820 Console???????????????? 0???????? 36 K
nmupm.exe?????????????????? 3632 Console???????????????? 0???????? 36 K
perl.exe??????????????????? 4120 Console???????????????? 0???????? 36 K
emagent.exe???????????????? 3460 Console???????????????? 0????? 6,376 K
TaobaoProtect.exe??????????? 588 Console???????????????? 0????? 3,792 K
alg.exe???????????????????? 4768 Console???????????????? 0???????? 92 K
Alipaybsm.exe?????????????? 1904 Console???????????????? 0????? 4,004 K
IEXPLORE.EXE??????????????? 3172 Console???????????????? 0???? 11,448 K
IEXPLORE.EXE??????????????? 4384 Console???????????????? 0??? 123,428 K
java.exe??????????????????? 4024 Console???????????????? 0???? 26,516 K
java.exe??????????????????? 4132 Console???????????????? 0???? 24,764 K
QQProtect.exe?????????????? 2100 Console???????????????? 0????? 3,024 K
QQ.exe????????????????????? 3332 Console???????????????? 0???? 81,952 K
true
總結
以上是生活随笔為你收集整理的java获取所有进程_Java 获取系统的进程列表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学计算机的心理300字,【必备】心理作文
- 下一篇: 标题: 连接到服务器 ---------