Список запущенных программ в Linux с использованием Java - PullRequest
0 голосов
/ 12 июля 2011

Я пытаюсь закодировать диспетчер задач для Linux с использованием Java.

Мне нужно получить список запущенных программ. И другая информация, такая как: использование памяти, использование процессора ...

Возможно ли это с Java?

Спасибо.

Ответы [ 3 ]

6 голосов
/ 12 июля 2011
try {
    // Execute command
    String command = "ps aux";
    Process child = Runtime.getRuntime().exec(command);

    // Get the input stream and read from it
    InputStream in = child.getInputStream();
    int c;
    while ((c = in.read()) != -1) {
        process((char)c);
    }
    in.close();
} catch (IOException e) {
}

Источник (модифицированный): http://www.exampledepot.com/egs/java.lang/ReadFromCommand.html

1 голос
/ 12 июля 2011

Возможно, что в системах, использующих виртуальную файловую систему / proc, вы можете просто пройти через каталоги и найти информацию в /proc.

Нумерованные каталоги в / proc являются идентификаторами процесса выполненияпроцессы и элементы в этих каталогах помогают описать процесс.

Для использования памяти и информации о процессоре существуют / proc / meminfo и / proc / cpuinfo (и многое другое).Надеюсь, это поможет вам начать работу.

Для систем, в которых отсутствует виртуальная файловая система / proc, вам нужно использовать JNI для привязки к коду C, который будет выполнять вызовы API ядра, или пытаться запускать локальные программы командной строки до конца.exec во время передачи и анализа вывода обратно в программу Java.

0 голосов
/ 12 июля 2011

Попробуйте использовать exec(String command).Затем вы можете получить входной поток из полученного процесса .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...