Question

En Java ou via un plug-in Eclipse, est-il possible de trouver un processus par son nom sans descendre à code natif? Plus précisément, je veux déterminer si un navigateur Web est en cours d'exécution et que l'utilisateur sait qu'ils peuvent avoir besoin de redémarrer le navigateur.

Je sais que le code natif est toujours une option, mais je veux éviter de créer une autre bibliothèque JNI si je peux l'éviter.

Était-ce utile?

La solution

Il est en fait une double question, voir le d'origine un .

Vous avez deux options ici, on est d'exécuter l'outil de ligne de commande qui liste les processus en cours d'exécution et d'analyser sa sortie. Comme l'a mentionné Jay sur un Linux peut utiliser "ps", sous Windows, vous devrez regrouper certains outils, que ce soit un port de ps de GNUWin / Cygwin / etc ou un outil natif comme PsList , ou consultez la page échantillon .

Deuxième option, que vous connaissez déjà est d'utiliser JNI, mais vous n'avez pas besoin d'écrire votre code à partir de zéro, vous pouvez envisager JNIWrapper . Il fournit un outil facile à utiliser l'API Java pour les fonctions OS natives communes. Ils fournissent également des licences libres pour les projets Open Source.

Autres conseils

Je ne sais pas moyen d'obtenir une liste des processus en cours d'exécution directement à partir de Java. Si vous êtes sous Linux, vous pouvez créer un processus qui exécute « ps », lisez InputStream du processus d'intercepter les résultats et l'analyser. Vous auriez pas besoin de descendre au niveau JNI pour le faire. Vous pouvez exécuter une commande shell avec processus

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top