2012-10-02 2 views
0

그래서 재미있는 문제가 발생했습니다. 한 번 충돌 한 것으로 보이는 프로그램을 Java에서 만들었습니다. 나는 그것이 겉으로보기에는 그 기간 동안 로깅을 멈추었 기 때문에 충돌을 야기한 정확한 조건을 모른다. 이 배치 파일을 통해 호출되는하지만 (즉, 실행 :이미 실행중인 경우 닫기 파일을 실행하는 배치 파일

java -jar MyProg.jar 

) 프로그램 (장소에 안전 그물의 일부 금액에도 불구하고) 제대로 실행하지 못했습니다 때와

는 말했다,이 때 실행 중지 있어야합니다. 나는 사용자 x는 java.exe를 실행 있는지 확인 할 수있는 몇 가지 방법이 있나요, 그리고 그들이 경우 수행

taskkill /IM java.exe /f 

내 프로그램 또는 유사한 무언가를 실행하기 전에? 감사.

+0

나는 그것을 올바르게 이해하고 있는지 확신 할 수는 없지만, 프로세스를보고 창에서 닫으려면 작업 관리자 - 프로세스 탭을 통해 수행 할 수 있습니다. – TheNewOne

+0

내가 멀리/잠들었을 때도 작업이 5 분마다 실행되기 때문에 프로그래밍 방식으로이 작업을 수행하려고합니다. 결과적으로 프로그램이 사용자 이름 ____________ (이 것은 한 가지만 실행하는 시스템 계정)로 실행 중인지 여부를 감지하고, 그렇다면 jar 파일을 실행하기 전에 프로그램을 종료해야합니다. –

+0

taskkill을 사용하여 특정 사용자가 시작한 작업을 종료하는 방법을 묻는 중입니까? –

답변

1
tasklist /nh /fi "imagename eq java.exe" | find /i "java.exe" >nul && taskkill /im java.exe /f || rem Java not running, run your program 
+0

불행히도 여러 가지 시스템 계정이 서로 다른 간격으로이 상자에 각각의 프로그램을 실행하기 때문에 일을하는 가장 좋은 방법은 아닙니다. Java를 사용하는 5 분 작업을 실행하는 다른 계정이 적어도 1-2 개 있다는 것을 알고 있습니다. 먼저 내 계정 (DBell)이 java.exe를 호출하여 실행 중이라는 것을 알아야합니다. 이렇게하려면 어떤 방법이 있습니까? –

+0

잘 모르겠지만 tasklist에 사용자가 프로세스를 실행하는 필터가 있다고 생각하지 않습니다. 당신이 어떤 세션 ID인지 알지 못했다면, 당신은 그것을 할 수있을 것입니다. –

관련 문제