2009-11-19 30 views
2

Je cherche une solution Java pour trouver l'utilisation du processeur pour un processus en cours d'exécution dans Windows. Après avoir regardé le web, il semble y avoir peu d'informations sur une solution en Java. Gardez à l'esprit, je ne cherche pas à trouver l'utilisation du processeur pour la JVM, mais tout processus qui s'exécute dans Windows à la fois.Utilisation de Java pour récupérer l'utilisation du processeur pour les processus de Windows

Je suis capable de récupérer l'utilisation de la mémoire dans Java en utilisant exec ("tasklist.exe ...") pour récupérer et analyser les informations de processus. Bien qu'il existe une minuterie de cycle CPU globale pour chaque processus, je ne vois pas de colonne d'utilisation du processeur.

Toute aide serait grandement appréciée. Aussi, si possible, je voudrais rester loin des bibliothèques C; cependant, s'il n'y a pas d'autre solution, une solution par ce moyen serait appropriée.

Merci beaucoup,

Steve

Répondre

1

Si sur de nombreuses plateformes pertinentes

0

tout processus en cours d'exécution dans Windows

Ainsi, non contrôlés par Java de quelque façon?

Je voudrais rester loin de JNI

Oubliez ça. Java n'est pas spécifique à la plateforme. Si vous souhaitez accéder à des informations spécifiques à la plate-forme, vous ne pouvez pas contourner JNI.

1

Regardez dans Jacob. Il vous permettra d'appeler des objets COM, et il y a des objets COM à gogo pour ce genre d'informations sur Windows.

0

Vous écrivez/utilisez un programme distinct pour vider ces données quelque part et vous pouvez ensuite les récupérer depuis Java via le réseau, les fichiers ou la base de données. Sous Linux, vous pouvez toujours lire /proc mais pas sur Win, un proggy séparé serait nécessaire (sans JNI).

0

une GPL API sous licence est bien pour vous, essayez

SIGAR - System Information Gatherer And Reporter

Il permet d'accéder à l'information que vous voulez (et beaucoup plus) et est pris en charge Essayez javasysmon, BSD sous licence (pour être précis: la licence FreeBSD à 2 clauses). Je l'ai utilisé pour obtenir l'utilisation du processeur et du processeur. C'est beaucoup mieux que d'utiliser tasklist.exe je pense.