Как получить список текущих открытых окон/процесса с Java?

Существует также менее «хакерский» метод, который работает для всех популярных браузеров. Google включил проверку браузера в Closure Library . В частности, посмотрите на goog.userAgent и goog.userAgent.product . Таким образом, вы также обновляетесь, если что-то изменится в том, как отображаются браузеры (учитывая, что вы всегда используете последнюю версию компилятора закрытия.)

84
задан tshepang 16 April 2014 в 06:15
поделиться

4 ответа

Это - другой подход к синтаксическому анализу список процессов от команды" -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 информация помогает!

95
ответ дан Josh Crozier 24 November 2019 в 08:32
поделиться

Единственным путем я могу думать о выполнении, это путем вызова приложения командной строки, которое делает задание для Вас и затем 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
}
9
ответ дан jodonnell 24 November 2019 в 08:32
поделиться

Нет никакого независимого от платформы способа сделать это. В 1,6 выпусках Java" Рабочий стол " класс был добавлен позволение портативных способов просмотреть, редактировать, отправить по почте, открыть и распечатать URI. Возможно, что этот класс может когда-нибудь быть расширен на процессы поддержки, но я сомневаюсь относительно него.

, Если Вам только любопытно в процессах Java, можно использовать java.lang.management api для того, чтобы получить информацию потока/памяти о JVM.

4
ответ дан hazzen 24 November 2019 в 08:32
поделиться

Ниже программы будет совместимо с 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());
        });
    }
}
0
ответ дан 24 November 2019 в 08:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: