cs_cosworth
Messages postés40Date d'inscriptionmardi 21 novembre 2006StatutMembreDernière intervention16 mai 2008
-
29 févr. 2008 à 12:10
cs_samiad
Messages postés20Date d'inscriptionlundi 14 juillet 2008StatutMembreDernière intervention16 décembre 2009
-
21 avril 2009 à 17:32
Bonjour,
Comment avoir une liste des processus qui tourne sur ma machine ?
et quels sont les APIs qui me permettent de manipuler les processus ?
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 29 févr. 2008 à 15:37
Salut,
nan c'est pas spécialement complex, mais pour unix tu peux aussi le faire en java pure par le biais d'un appel système (je zap toujours cette méthode vu que c'est la porte ouverte aux failles de secu d'une application)
exemple :
import java.io.IOException;
import java.util.Scanner;
public class ProcessPrinter {
public static void main(String[] args) throws IOException {
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("/bin/ps -auxf");
Scanner sc = new Scanner(proc.getInputStream());
while(sc.hasNextLine())
System.out.println(sc.nextLine());
sc.close();
}
}
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
la liste des processus
dépends essentiellement du système d'exploitation sur
le quel ton application tourne donc tu devras sûrement (à
90% de chances) passer par du code natif... tu peux soit avoir de la
chance et tomber sur un API déjà écrite (perso
j'en connais pas), soit passer par JNI (il te faudra coder un wrapper
C/C++ vers JAVA) ou encore passer par JNA (ça t'évite
de faire du C/C++)
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
cs_cosworth
Messages postés40Date d'inscriptionmardi 21 novembre 2006StatutMembreDernière intervention16 mai 2008 29 févr. 2008 à 15:04
Salut,
merci Twinuts pour ta réponse, l'eventuelle application doit etre testé
sous l'environnement solaris (si j'arrive à la developper biensure), je
n'imaginais pas que le fait de lister les processus étais si
compliqué :(
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 29 févr. 2008 à 19:22
Salut:
Twinuts >> Merci pour le JNA.
<hr size="2" width="100%" />[Félicité de Lamennais] Le plus puissant de tous les leviers, c'est la volonté.
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 2 mars 2008 à 00:04
Salut,
j'ai déjà un blog CS mais il est trop fantome...... je n'ai pas vraiment le temps de m'en occuper, de plus je prefere parler d'unix plutot que java....
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
cs_cosworth
Messages postés40Date d'inscriptionmardi 21 novembre 2006StatutMembreDernière intervention16 mai 2008 2 mars 2008 à 16:28
Bonjour,
merci pour vos commentaires, est ce qu'il ya des logiciels semblables à "ProcessMonitor" ou "ProcessExplorer" qui sont OpenSource parceque je cherche des exemples qui peuvent m'aider dans le developpement d'une petite application de process monitoring.
merci pour votre attitude de partage et d'entreaide
cs_cosworth
Messages postés40Date d'inscriptionmardi 21 novembre 2006StatutMembreDernière intervention16 mai 2008 3 mars 2008 à 17:39
salut,
pour ton code Twinuts je l'ai essayé sous solaris 8 mais ça ne marche
pas malheureusement, il m'affiche : exception in thread main
......NoClassDefFoundError est ce que vous avez une proposition ?
donne la trace complète
et également la ligne de commande utilisée.
La comme
ça je pense que l'utilisation de la classe Scanner y est pour
beaucoup (dispo seulement depuis le jdk 1.5)
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
cs_cosworth
Messages postés40Date d'inscriptionmardi 21 novembre 2006StatutMembreDernière intervention16 mai 2008 4 mars 2008 à 13:39
salut,
pour le code que vous m'avez donné je l'ai compilé dans une fenetre terminal par la commande:
javac ProcessPrinter.java
puis pour l'exécution j'ai fait:
java ProcessPrinter
et c'est là apres cette dernière commande que l'erreur est affichée
en plus la commade que contient le code à savoir "ps -auf" ne donne pas le résultat souhaité que sous fedora par exemple
merci pour votre aide Twinuts
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 4 mars 2008 à 14:20
Salut,
adapte la commande suite à un 'man ps'... sinon voici un script bash pour générer le fichier java, le compiler, et l'exécuter.
colle le texte ci-dessous dans un fichier nommé 'process_printer', une fois fait pense à le rendre exécutable (chmod +x process_printer) et exécute le (./process_printer) :
#!/bin/bash
FILE=ProcessPrinter
EXEC_CMD="/bin/ps -auxf"
if [ -f "${FILE}.java" ] || [ -f "${FILE}.class" ]; then
rm ${FILE}*
fi
javac ${FILE}.java
if [ $? -ne 0 ]; then
echo "javac error."
exit 1
fi
java ${FILE}
if [ $? -ne 0 ]; then
echo "java error."
exit 1
fi
#fin du script
Note ce script necessite la présence de bash sur ton système (testé sous ubuntu && gentoo)
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 4 mars 2008 à 18:55
Salut,
"est ce que je dois changer l'extension en .sh ???"
pas besoin car la premiere ligne du script (le bang) fait appel à bash...
cependant tu as 2 solutions :
1 - dans un term tu fais "./process_printer"
2 - tu appels explicitement bash "/bin/bash process_printer"
"et puis comment lancer le bash ?? parceque moi les commandes je les exécute avec le terminal"
le bash est un shell unix donc tu ne le lance pas vraiment... en gros pour faire simple un shell est un interpreteur de commandes (les commandes que tu tapes dans ton terminal)
"excusez mon niveau faible parceque tout ça c'est nouveau pour moi "
Pas de souci, puis on ne vient pas au monde avec la science infuse ^^
"merci pour votre compréhension"
Nous sommes là pour ça, puis quand le sujet est bien tourné ça donne tout de suite plus envie d'aider...
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
cs_cosworth
Messages postés40Date d'inscriptionmardi 21 novembre 2006StatutMembreDernière intervention16 mai 2008 5 mars 2008 à 14:23
Bonjour,
lors de l'excécution du script, il m'affiche; erreur à la linge 42
j'ai une autre question; je travaille sur un autre bout de code java
sur ma machine XP je le compile avec JCreator sans problème et il
s'exécute aussi sans erreur ou exception mais lorsque j'ai essayé de
compiler le fichier.java sous solaris il m'affiche plus que 50 erreurs
!!! notez que le bout de code n'utilise que java.IO, java.swing
et java.awt donc ya pas de packetages nouveaux à utiliser et j'ai le
jdk1.5 sous solaris et 1.6 sous xp. je n'ai absolument aucune idée sur
ce problème, est ce que vous suggérez quelques choses ??
cs_samiad
Messages postés20Date d'inscriptionlundi 14 juillet 2008StatutMembreDernière intervention16 décembre 2009 21 avril 2009 à 17:32
bonjour,
merci pour votre code j'ai besoin de ça dans mon projet de fin d'étude merci beaucoup mais je veut voir aussi les processus de PCs dans le méme réseau local donc comment faire si vous avez une idée répondez moi s'il vous plait.Merci pour votre attention