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 :

Runtime.exec et processus externe


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 90
    Points : 88
    Points
    88
    Par défaut Runtime.exec et processus externe
    Bonjour à tous !

    Je développe un programme qui produit des fichiers txt, xml, html...
    Dans celui ci, l'utilisateur a la possibilité d'ouvrir ces fichiers avec un logiciel externe (editeur/browser : notepad, firefox...).

    Pour permettre cela, j'utilise Runtime.exec qui est capable d'exécuter "the specified string command in a separate process.".

    Or quand on quitte mon programme, un processus java est encore actif et ce jusqu'à ce que l'on ferme toutes les instances des éditeurs ouverts par exec.

    Sachant que le exec est lancé dans un thread qui lui est propre et que je consomme les flux....

    Auriez-vous une piste pour assurer l'indépendance différents logiciels ?

    Merci pour votre aide

    Snyouf

  2. #2
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Le problème viens du fait des threads qui consomment les flux. Il restent actif tant que l'application fonctionne et prolongent donc sa durée de vie.
    Si tu veux qu'ils soient automatiquement terminés quand les autres threads de l'application le sont, il faut les déclarer comme Thread démons:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	monThread.setDaemon(true);

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 90
    Points : 88
    Points
    88
    Par défaut
    Je ne cherche pas vraiment à être informé de la fin du thread créé, ni de tuer le thread.
    Je cherche à lancer un processus qui ne soit pas du tout rattaché à l'arbre des threads java de mon appli...

    Auriez vous une suggestion ?

    Merci

  4. #4
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Si tu veux que ton processus soit complètement détaché du flux, ferme les flux plutôt que créer des Threads qui les consomment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    monProcess.getOutputStream().close();
    monProcess.getErrorStream().close();
    monProcess.getInputStream().close();

Discussions similaires

  1. [RUNTIME][EXEC]
    Par adrien1977 dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 30/09/2009, 16h28
  2. [Runtime][exec]Récupérer les stdout ET stderr
    Par yveslamand dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 20/05/2005, 13h37
  3. [Runtime]exec() avec une commande paramétrée
    Par nice dans le forum Général Java
    Réponses: 9
    Dernier message: 12/05/2005, 13h15
  4. [Servlet][Windows][System call]Runtime.exec
    Par lucho31 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 18/01/2005, 11h55
  5. [Système][Runtime][Exec] Comportement étrange au lancement de BeSweet
    Par divxdede dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/06/2004, 09h54

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