2012-08-01 2 views
0

Serversoftware Bukkit 플러그인을 다시 시작해야합니다. 그래서 나는 올바른 인수를 확인한 다음 Bukkit을 시작하는 주요 함수를 추가했습니다. 그러나 Bukkit을 시작하기 전에 Bukkit이 종료되기를 기다렸다가 다시 시작해야합니다. 타임 아웃을 추가 할 수는 있지만 더 좋은 방법이 있기를 바랍니다. 그렇다면 누구나 그렇게하는 법을 알고 있습니까?Javaprocess가 아직 실행 중인지 확인하는 방법은 무엇입니까?

+0

http://stackoverflow.com/questions/2318220/how-to-programmatically-detect-if-a- Windows에서 실행중인 프로세스 –

+1

예, 본 적이 있지만 플랫폼에 독립적 인 방법이 필요합니다. –

+0

Linux의 경우 jps 명령을 사용할 수 있습니다. Windows의 경우 @ While-E는 해결책을 제공했습니다. –

답변

0

System.getProperty("os.name");으로 OS를 확인하고 해당 특정 플랫폼에 대해 ad hoc 명령을 실행하는 것이 한 가지 방법입니다 (예 : LinuxWindows).

+1

또한 그것에 대해 생각했지만 올바른 프로세스를 찾을 수 있을지 확신 할 수 없습니다. 아이디어는 프로세스 자체 또는 pid를 인수로 추가하는 것이지만 클라이언트와 서버를 Windows에서 실행하는 경우 java.exe라고합니다. –

0

여러 개의 Java 프로세스를 시작하면 모두 동일한 식별자를 갖고있는 것으로 보이며 문제가있는 것 같습니다. 프로세스를 "차별화"하는 것은 문제가 아니라 죽이는 것입니다.

그래서 프로그램을 직접 만들면 프로세스에 사용되는 PID를 기록 할 수 있습니다. 그렇다면 매우 간단합니다. http://blog.igorminar.com/2007/03/how-java-application-can-discover-its.html

또 다른 아이디어는 JPS를 사용하여 모든 Java 프로세스에 대한 정보를 얻는 것입니다. 간단한 sudo는 알고리즘은 여기에 설명되어 있습니다 : 내가 어떤 도움이 될 수 http://bluepedia.blogspot.com/2008/11/jps-differentiate-between-multiple-java.html

희망 ..

관련 문제