import os if os.sep == '/': def get_pid(process): field = process.getClass().getDeclaredField('pid') field.setAccessible(True) return field.getLong(process) else: import ctypes GetProcessId = ctypes.cdll.kernel32.GetProcessId GetProcessId.argtypes = (ctypes.c_long,) def get_pid(proces): field = process.getClass().getDeclaredField('handle') field.setAccessible(True) handle = field.getLong(process) return GetProcessId(handle) if __name__ == '__main__': from java.lang import ProcessBuilder from java.io import InputStreamReader, BufferedReader def read_pid_from_stdout(process): reader = BufferedReader(InputStreamReader(process.getInputStream())) return reader.readLine() builder = ProcessBuilder(["python", "-c", "import os; print os.getpid()"]) process = builder.start() print 'PID from process :', get_pid(process) print 'PID from stdout :', read_pid_from_stdout(process)