Maison > Java > javaDidacticiel > Comment puis-je obtenir de manière fiable l'ID de processus d'un programme Java ?

Comment puis-je obtenir de manière fiable l'ID de processus d'un programme Java ?

Patricia Arquette
Libérer: 2024-12-19 02:03:13
original
534 Les gens l'ont consulté

How Can I Reliably Get the Process ID of a Java Program?

Récupération de l'ID de processus dans un programme Java générique

Obtenir l'ID de processus (PID) associé à un programme Java en cours d'exécution a été un défi persistant pour les développeurs recherchant une solution indépendante de la plate-forme. Bien qu'il existe des solutions de contournement spécifiques à la plate-forme, elles n'ont pas la généralité souhaitée.

L'approche RuntimeMXBean

La solution la plus largement adoptée introduit la classe ManagementFactory et sa méthode getRuntimeMXBean(). Cette ligne donne généralement un nom ressemblant à "12345@hostname", où 12345 représente le PID.

Cependant, il est crucial de noter que cette approche repose sur des subtilités non documentées et n'est pas garantie de fournir des résultats cohérents dans toutes les implémentations JVM. . En fait, la documentation Java elle-même prévient explicitement que le nom renvoyé peut être arbitraire, soumis aux conventions spécifiques à la plate-forme :

Renvoie le nom représentant la machine virtuelle Java en cours d'exécution. La chaîne de nom renvoyée peut être n'importe quelle chaîne arbitraire et une implémentation de machine virtuelle Java peut choisir d'incorporer des informations utiles spécifiques à la plate-forme dans la chaîne de nom renvoyée. Chaque machine virtuelle en cours d'exécution peut avoir un nom différent.

API de processus Java 9

Introduite dans Java 9, l'API ProcessHandle offre une alternative plus directe et standardisée pour récupérer le PID :

long pid = ProcessHandle.current().pid();
Copier après la connexion

Cette approche fournit une méthode fiable et indépendante de la plate-forme pour accéder à l'ID de processus dans les versions Java modernes, éliminant les complexités associées à l'approche RuntimeMXBean.

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