2014-01-14 1 views
1

Java의 특정 ProcessId에서 Process 개체를 가져 오는 방법은 무엇입니까?프로세스 ID로 프로세스 개체 가져 오기

백그라운드에서 응용 프로그램을 열려고하기 때문에 JNA를 사용하여 프로세스를 만듭니다.

WinBase.STARTUPINFO startupInfo = new WinBase.STARTUPINFO(); 
startupInfo.dwFlags = 1; 

WinBase.PROCESS_INFORMATION.ByReference processInformation = new WinBase.PROCESS_INFORMATION.ByReference(); 

Kernel32.INSTANCE.CreateProcess(null, "C:\\Program Files\\...", null, null, true, new WinDef.DWORD(0), Pointer.NULL, System.getProperty("java.io.tmpdir"), startupInfo, processInformation); 

int prozessId = processInformation.dwProcessId.intValue(); 
+0

왜 프로세스를 사용하지 않습니까? 어떻게 Java로 백그라운드에서 프로세스를 열지 않습니까? –

+0

시도해 보았지만 응용 프로그램이 항상 포 그라운드에서 시작되었습니다. 이 ProcessBuilder를 사용하고 있습니다 – Higune

+0

이 질문은 Java보다 Windows API 프로그래밍에 관한 것입니다. –

답변

1

이것은 불가능합니다. ProcessProcessBuilder에 대한 API를 사용하면 기존 프로세스에 대해 Process 인스턴스를 만들 수 없습니다. 항상 새 하위 프로세스 만 만들 수 있습니다.