Существует также менее «хакерский» метод, который работает для всех популярных браузеров. Google включил проверку браузера в Closure Library . В частности, посмотрите на goog.userAgent
и goog.userAgent.product
. Таким образом, вы также обновляетесь, если что-то изменится в том, как отображаются браузеры (учитывая, что вы всегда используете последнюю версию компилятора закрытия.)
Это - другой подход к синтаксическому анализу список процессов от команды" -e пикосекунды":
try {
String line;
Process p = Runtime.getRuntime().exec("ps -e");
BufferedReader input =
new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line); //<-- Parse data here.
}
input.close();
} catch (Exception err) {
err.printStackTrace();
}
при использовании Windows, тогда необходимо изменить строку: "Обработайте p = Runtime.getRun..." и т.д. (3-я строка) для той, которая похожа на это:
Process p = Runtime.getRuntime().exec
(System.getenv("windir") +"\\system32\\"+"tasklist.exe");
Hope информация помогает!
Единственным путем я могу думать о выполнении, это путем вызова приложения командной строки, которое делает задание для Вас и затем screenscraping вывод (как PS Linux и список задач Окна).
, К сожалению, это будет означать, что необходимо будет записать некоторые стандартные программы парсинга для чтения данных от обоих.
Process proc = Runtime.getRuntime().exec ("tasklist.exe");
InputStream procOutput = proc.getInputStream ();
if (0 == proc.waitFor ()) {
// TODO scan the procOutput for your data
}
Нет никакого независимого от платформы способа сделать это. В 1,6 выпусках Java" Рабочий стол " класс был добавлен позволение портативных способов просмотреть, редактировать, отправить по почте, открыть и распечатать URI. Возможно, что этот класс может когда-нибудь быть расширен на процессы поддержки, но я сомневаюсь относительно него.
, Если Вам только любопытно в процессах Java, можно использовать java.lang.management api для того, чтобы получить информацию потока/памяти о JVM.
Ниже программы будет совместимо с Java 9 + версия только...
Для получения информации CurrentProcess,
public class CurrentProcess {
public static void main(String[] args) {
ProcessHandle handle = ProcessHandle.current();
System.out.println("Current Running Process Id: "+handle.pid());
ProcessHandle.Info info = handle.info();
System.out.println("ProcessHandle.Info : "+info);
}
}
Для всех рабочих процессов,
import java.util.List;
import java.util.stream.Collectors;
public class AllProcesses {
public static void main(String[] args) {
ProcessHandle.allProcesses().forEach(processHandle -> {
System.out.println(processHandle.pid()+" "+processHandle.info());
});
}
}