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

API standards et tierces Java Discussion :

[Process]fin de process


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 118
    Par défaut [Process]fin de process
    Bonjour,
    J'ai un process que j'éxecute comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec(command,null,new File("..."));
    Ce process peut dans certain cas durer environ 2-3 minutes.
    Entre temps, je fais un :
    System.exit(0)
    pour fermer mon appli. Mais, le process s'arrete aussi. J'aimerais fermer mon application sans tuer ce process. Comment faire? merci.

  2. #2
    Membre confirmé
    Avatar de guipom
    Inscrit en
    Janvier 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 207
    Par défaut
    ca va dépendre de l'OS ou ton appli s'exécute, sous linux un "&" au bout de ta commander suffit à détacher le processus et il me semble que ca marche bien avec la JVM

    sous windows il n'y a pas de solution à ce problème je crois.


    Attends d'autres réponses, j'espère (pour toi) qu'elles viendront contredire ce que j'ai avancé comme idée

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 118
    Par défaut
    salut,
    Le & n'est pas géré par la commande exec que ce soit sous Unix ou sous Windows. En tout cas, quand je fais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec(command + " &",null,new File("..."));
    alors la commande est en échec dans les deux environnements.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 118
    Par défaut
    ou alors, est il possible, avant que je fasse mon System.exit(0), que je liste le nombre de process qui tournent et qui ne sont pas terminés? comme ca je kill la machine virtuelle uniquement quand tous mes process sont terminés.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 118
    Par défaut
    j'ai vu qu'il était possible de faire des Thread démons, qui sont indépendant de leurs pères. Est ce qu'ils sont tués lorsque java termine?

  6. #6
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Citation Envoyé par alex'l
    ou alors, est il possible, avant que je fasse mon System.exit(0), que je liste le nombre de process qui tournent et qui ne sont pas terminés? comme ca je kill la machine virtuelle uniquement quand tous mes process sont terminés.
    Oui, mais à condition que tu conserves une référence dessus. Tu pourrais encapsuler Runtime.getRuntime().exec dans une méthode qui ajouterait la référence du processus créé dans une table. Et lorsque tu veux savoir s'il existe des processus qui tournent, tu parcours cette table en appelant la méthode exitValue() sur chacun d'eux.

  7. #7
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Citation Envoyé par alex'l
    j'ai vu qu'il était possible de faire des Thread démons, qui sont indépendant de leurs pères. Est ce qu'ils sont tués lorsque java termine?
    Oui, en fait c'est toute la machine virtuelle qui se termine, et comme les thread démons en font partie. La machine virtuelle se termine (hors System.exit()) quand les seuls threads en cours d'exécution sont justement des threads démons.

  8. #8
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Tu as la méthode Process.waitFor(), qui te permet d'attendre la fin du processus. Il te suffit de l'appeler avant de faire System.exit(0).
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 118
    Par défaut
    Le probleme avec le waitFor c'est qu'il ne marche pas pour toutes les commandes systeme de Clearcase (des fois, il ne se termine jamais) et en plus, le waitFor bloque l'application...

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/03/2013, 09h58
  2. Problème d'attente de fin de process
    Par hannibal.76 dans le forum Général Java
    Réponses: 2
    Dernier message: 20/02/2013, 09h37
  3. [2005] Problème Process Full et Process Update
    Par jere59 dans le forum SSAS
    Réponses: 4
    Dernier message: 17/04/2012, 14h29
  4. ShellExecute n'attend pas la fin du process
    Par david11001 dans le forum C++
    Réponses: 2
    Dernier message: 22/09/2007, 12h02
  5. [Process]Execution de process dans un thread
    Par devjava dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 18/06/2004, 10h34

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