В Linux (я бегу Ubuntu 14)
public class SO {
public static void main(String[] args) throws Exception {
System.out.println(getStartTime(29489));
}
private static String getStartTime(int pid) throws IOException {
String start = null;
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("ps -ewo pid,lstart");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null) {
line = line.trim();
if (line.startsWith(pid+" ")) {
int firstSpace = line.indexOf(" ");
start = line.substring(firstSpace+1);
break;
}
}
return start;
}
}
Выход
Wed Apr 13 21:13:10 2016
Проверка через командную строку
[email protected]:~$ ps -ewo pid,lstart | grep 29489
29489 Wed Apr 13 21:13:10 2016
Дубликат - http://stackoverflow.com/questions/54686/how-to-get-a-list-of-current-op en-windows-process-with-java – deeveeABC
Важным для меня является время начала, могу ли я получить его также из этого списка? – Gobliins
Для Linux используйте «ps -eo pid, stime», чтобы получить время начала, указанное рядом с PID. Вы можете запустить эту команду из java так же, как в http://stackoverflow.com/questions/54686/how-to-get-a-list-of-current-open-windows-process-with-java – mdewit