2015年4月6日月曜日

javaでRuntime.execしたプロセスのPIDを取得する方法

意外と日本語のページが引っかからなかったので書いときます。

        try {
            Field field = process.getClass().getDeclaredField("pid");
            field.setAccessible(true);
            int pid = field.getInt(process);
        } catch (NoSuchFieldException|IllegalAccessException ex) {
            ex.printStackTrace();
        }

processはRuntime.execが返したjava.lang.Process、Fieldはjava.lang.reflect.Field。