내 시스템에서 실행중인 프로세스 배열을 빌드하려고합니다. 그래서 다음과 같은 두 가지 명령을 사용하는 것을 시도하고있다 할 :Java에서 Windows 작업 목록 출력 구문 분석
tasklist /fo csv /nh # For a CSV output
tasklist /nh # For a non-CSV output
오전 데 문제 것은 내가 제대로 출력을 구문 분석 할 수 있다는 것입니다.
첫 번째 시나리오
나는이 선 같은 : 나는 "".split(",")
을이 프로세스 메모리 사용에 관해서 그러나이 실패하여 구문 분석을 시도
"wininit.exe","584","Services","0","5,248 K"
-에서 쉼표 숫자 필드 willl 추가 필드가 발생합니다. 나는 그러나이 일이 지금 System Idle Process
같은 과정에서 실패 "".split("\\s+")
를 사용하여 분석을 시도하고
wininit.exe 584 Services 0 5,248 K
:
두 번째 시나리오가 아닌 CSV 출력없이
, 내가 좋아하는 줄이 , 또는 실행 가능한 이름에 공백이있는 다른 프로세스.
같은 분할 인덱스가 항상 올바른 데이터 열을 포함하도록 이러한 출력을 구문 분석 할 수 있습니까?
쉼표로만 구분하는 대신 CSV- 파서를 사용하려고 했습니까? CSV는 일반적으로 잘 정의되어 있으며 좋은 구문 분석기는 따옴표를 올바르게 해석하고 쉼표로 구분하지 않습니다. – cello
가능한 한 적은 수의 외부 라이브러리를 사용하여이 작업을 수행하고 싶습니다. 이 작업은 충분히 간단하며 가장 좋은 접근 방식이 무엇인지 궁금합니다. –