Использование Java для получения загрузки ЦП для процессов Windows

Я ищу решение Java, чтобы найти использование процессора для работающего процесса в Windows. После просмотра веб-страниц, кажется, мало информации о решении на Java. Имейте в виду, я не ищу, чтобы определить использование процессора для JVM, но любой процесс, работающий в Windows в то время.

Я могу получить информацию об использовании памяти в Java с помощью exec("tasklist.exe ... ") для получения и анализа информации о процессе. Хотя для каждого процесса есть таймер совокупного цикла ЦП, я не вижу столбца использования ЦП.

Любая помощь будет принята с благодарностью. Также, если возможно, я бы хотел держаться подальше от библиотек C; однако, если нет никакой другой альтернативы, решение таким способом было бы уместным.

Большое спасибо,

Стив

6 ответов

Решение

Если вам подходит лицензированный API GPL, попробуйте

СИГАР - Сборщик информации о системе и репортер

Это позволяет получить доступ к информации, которую вы хотите (и многое другое) и поддерживается на многих соответствующих платформах

Посмотри на Джейкоба. Это позволит вам вызывать COM-объекты, и для такого рода информации в Windows существует множество COM-объектов.

Попробуйте javasysmon, лицензированный BSD (если быть точным: лицензия FreeBSD с 2 пунктами).

Я использовал его для получения ядра процессора и загрузки процессора. Я думаю, это намного лучше, чем с помощью tasklist.exe.

Вы пишете / используете отдельную программу для выгрузки этих данных куда-то, а затем можете получить их из Java через сеть, файлы или БД. В Linux вы всегда можете прочитать /proc но не на Win, необходима отдельная прога (без JNI).

любой запущенный процесс в Windows

Таким образом, не контролируется Java в любом случае?

Я хотел бы держаться подальше от JNI

Забудь это. Java не зависит от платформы. Если вы хотите получить доступ к информации о платформе, вы не можете обойти JNI.

Другие вопросы по тегам