IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Aide sur Process.destroy()


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 30
    Par défaut Aide sur Process.destroy()
    Bonjour,

    J'ai fait une recherche mais j'ai rien trouvé de concluant, peut-être existe-t-il une solution depuis.
    Voilà je lance une ligne de cmd avec Java sous windows, pour faire très court:
    Process process = Runtime.getRuntime().exec("ma_cmd");

    Je consomme avec des StreamGobbler... dès que j'intercepte une certaine erreur, je tue mon process, process.destroy(), le subprocess est bien tué, mais dans le gestionnaire des taches il y a toujours une tache java.exe qui tourne...

    Comment faire pour l'arrêter svp (si possible sans passer par du kill -9 à la linux) ? apparemment c'est un pb connu.

    merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    salut,
    essaye avec :

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 30
    Par défaut
    déjà merci pour ta réponse . Mais non, car en fait je veux seulement tuer le process lancé par l'appli et pas toute l'application.

    une autre idée ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 132
    Par défaut
    En fait la methode process.destroy tue uniquement le process que tu viens de lancer mais pas ses fils.

    Pour les tuer tous, il faut faire le boulot toi même

    1) Créer un programme de redirection pour récupérer le PID du process avant de lancer ton programme.

    2) Avec un peu de JNI tu te fais programme en C++ une dll qui tue un process et ces fils à partir d'un PID.
    Ou alors si ton programme ne tourne que sur XP tu peux executer la ligne :
    "taskkill /T /F /PID XXXX"

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 30
    Par défaut
    OK merci.

    C'est un peu galère ça, c'est fou qu'on ne puisse pas faire ça directement.
    N'y aurait-il pas de JNI existantes déjà à ce sujet ?

    Merci, je sais, suis peut-être un peu ch**** mais les contraintes de tps ne me permette pas de le faire moi même

Discussions similaires

  1. [Débutant] aide sur un envoi de texte depuis un bouton vers un autre process.
    Par dragonmouff123 dans le forum VB.NET
    Réponses: 10
    Dernier message: 01/02/2013, 15h10
  2. Aide Sur AntiKill Process
    Par sdk.coders dans le forum Langage
    Réponses: 4
    Dernier message: 17/03/2010, 14h53
  3. Demande d'aide sur XPDL (XML Process Definition Language)
    Par Bebert71 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 17/02/2006, 09h23
  4. [VB.NET]Aide sur les process
    Par Dnx dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/10/2005, 15h13
  5. Aide sur une fenetre
    Par Ray-j dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 29/11/2002, 08h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo