Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2618 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Comment tuer un processus

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment tuer un processus

n°832424
g1franc
Posté le 26-08-2004 à 00:40:54  profilanswer
 

J'ai lancé un processus externe mais je n'arrive pas à le tuer à l'aide de la commande "destroy". Comment le faire ?
 
 
Voici mon code (l'application a été changer pour la lisibilité)

Code :
  1. Runtime run = Runtime.getRuntime();
  2. Process toi = run.exec("explorer" );
  3. toi.destroy();  // ça marche pas


 
 
il y a des "try/catch" en plus que j'ai pas mis pour la lisibilité toujours

mood
Publicité
Posté le 26-08-2004 à 00:40:54  profilanswer
 

n°832430
the real m​oins moins
Posté le 26-08-2004 à 01:11:34  profilanswer
 

marche pas, mais encore?
c'est quoi le process en question ?


Message édité par the real moins moins le 26-08-2004 à 01:13:01

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°832432
g1franc
Posté le 26-08-2004 à 01:14:07  profilanswer
 

un processus quelconque, ça ne marche avec aucun que j'ai essayé ("explorer" notamment)

n°832433
chrisbk
-
Posté le 26-08-2004 à 01:20:45  profilanswer
 

ben explorer je sais pas si c'est le bon exemple

n°832436
g1franc
Posté le 26-08-2004 à 01:31:08  profilanswer
 

j'ai essayé avec "cmd" et "firefox" avec "iexplore" j'arrive même pas à le lancer (si tu comment le lancer ca m'interesse).
 
Sinon j'ai une solution c'est récupérer le pid du programme lancé mais est-ce qu'il y a moyen ?

n°832523
sircam
I Like Trains
Posté le 26-08-2004 à 09:58:40  profilanswer
 

La gestion des process est plus que rudimentaire en Java. Oublie tout ce que tu as pu connaitre en C.
 
Je viens d'essayer ton exemple avec "notepad" et ça marche. Quel JDK utilises-tu ?
 
De manière générale, la création / gestion des process est à fuir comme la peste en Java. Je parle de pure expérience.
 
Certains programmes démarrés via exec() ne pourront tourner qui si tu "suces" leur error stream et leur output stream (sans quoi ils resteront figés), ce qui t'oblige à démarrer deux threads à cet effet.
 
Si tu as le malheur d'invoquer un "batch", qui lui-même lance un programme, tu ne feras que comprendre ta douleur.
 
Enfin, pour encore plus illustrer le manque de robustesse de cette gestion, je me souviens de différences notoires entre JDK 1.3 et 1.4 quant au code de retour des progs ainsi appelés (l'un des deux donnait généralement une valeur abbérante).
 
L'API elle-même ne brille d'ailleurs que par sa pauvreté.

n°835149
deltaden
Posté le 28-08-2004 à 16:00:20  profilanswer
 

îl vaut mieux alors faire une programme C qui gère ça en externe et l'appeler par JNI ? :??:

n°835217
sircam
I Like Trains
Posté le 28-08-2004 à 18:38:32  profilanswer
 

deltaden a écrit :

îl vaut mieux alors faire une programme C qui gère ça en externe et l'appeler par JNI ? :??:


J'irais pas forcément jusque là.
 
Si tu ne peux pas faire autrement que de passer par des processus, ET si tu peux t'en sortir avec le peu d'API Java, ET que tu le fait en parfaite connaissance de cause, ma foi, ça ira.
 
Si tu as des besoins plus spécifiques, je n'ai jamais essayé ta solution, mais ça sent le can of worms.
 
Ceci dit, ton exemple DEVRAIT marcher. Si pratiquement, il ne te faut rien de plus que exec() et destroy(), j'essayerais de voir pq ça ne marche pas, de régler ça et de pouvoir l'utiliser. Mais je vois pas, comme ça, pq ça marche pas.


Message édité par sircam le 28-08-2004 à 18:39:43

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Comment tuer un processus

 

Sujets relatifs
[C] creation de threads ou de processus ?mettre en prioriété un processus sur un serveur !!
Tuer un threadProcessus père et fils, pas sûr de mon programme
[VBS] Kill processus courant sous windows XP[C] comment acceder au donner d'un processus
[C/Unix] Date de création d'un processusComment tuer un processus mis en mémoire avec fork() ??
[C] komment tuer un processus zombie ?[C & Linux] comment "tuer" un processus ?
Plus de sujets relatifs à : Comment tuer un processus


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)