Maison > Java > javaDidacticiel > Comment puis-je obtenir de manière fiable l'ID d'un processus Java sur différentes plates-formes ?

Comment puis-je obtenir de manière fiable l'ID d'un processus Java sur différentes plates-formes ?

Barbara Streisand
Libérer: 2024-12-24 21:20:27
original
784 Les gens l'ont consulté

How Can I Reliably Get a Java Process's ID Across Different Platforms?

Récupération de l'ID de processus Java : navigation dans les dépendances de la plate-forme

Déterminer l'ID de processus (PID) d'un programme Java peut être une tâche difficile en raison de dépendances de la plateforme. Bien que des hacks spécifiques à chaque plateforme puissent exister, la recherche d'une solution plus polyvalente est souvent préférée.

Hacks dépendants de la plateforme

Diverses approches dépendant de la plateforme tentent de récupérer le PID . Pour Windows, Windows Management Instrumentation (WMI) peut être exploité pour obtenir l’ID de processus. Les utilisateurs Linux peuvent utiliser le système de fichiers "/proc" pour identifier le processus. Cependant, de tels hacks sont intrinsèquement limités à des plates-formes spécifiques.

La solution indépendante la plus proche de la plate-forme

ManagementFactory.getRuntimeMXBean().getName() fournit une approximation relativement cohérente de la PID dans une gamme diversifiée d’implémentations JVM. Il renvoie généralement une chaîne telle que « 12345@hostname », où « 12345 » représente l'ID du processus. Cependant, la documentation souligne qu'aucune garantie n'est fournie pour cette valeur.

Amélioration Java 9

Dans Java 9, une nouvelle API de processus apparaît qui offre un moyen plus fiable pour obtenir le PID. L'utilisation de ProcessHandle.current().pid() génère l'ID de processus sous la forme d'un entier long. Cette méthode est applicable à toutes les plates-formes et évite la dépendance à l'égard d'implémentations spécifiques à la plate-forme.

Conclusion

Bien qu'il s'agisse d'une solution universellement applicable et indépendante de la plate-forme pour récupérer l'ID de processus d'un programme Java reste insaisissable, ManagementFactory.getRuntimeMXBean().getName() et (pour Java 9 et versions ultérieures) ProcessHandle.current().pid() apparaît comme des options fiables qui répondent aux scénarios les plus courants.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal