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 :

Lancer .bat d'une appli java


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 35
    Par défaut Lancer .bat d'une appli java
    Bonjour,
    je cherche à lancer un .bat depuis mon application java, j'ai donc fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Runtime r = Runtime.getRuntime();
    Process p = r.exec("C:\\test.bat");
    r.waitFor();
    Le .bat se lance bien mais il le fait en tâche de fond, or je veux que la fenêtre dos soit visible pour pouvoir voir le déroulement de mon .bat

    J'ai donc testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Runtime r = Runtime.getRuntime();
    Process p = r.exec("cmd.exe /c start C:\\test.bat");
    r.waitFor();
    La nikel ça marche mais ici je lance un cmd.exe qui lance mon .bat, donc une fois mon .bat lancé, le processus cmd.exe se termine et donc mon r.waitFor(); considere le processus terminer et poursuit le prog java or mon .bat lui n'a pas fini son éxécution.

    J'ai alors tenté un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String nomFichier = "C:\\test.bat";
    File fichier = new File(nomFichier);
    Desktop desk = Desktop.getDesktop();
    desk.open(fichier);
    La aussi ça marche mais pas moyen de dire à mon prog java d'attendre la fin de mon .bat avant de continuer.

    Auriez vous une solution à me proposer car la je vois pas.

    Merci.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 265
    Par défaut
    Si tu enlèves le start dans ta commande que se passe-t-il ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Runtime r = Runtime.getRuntime();
    Process p = r.exec("cmd.exe /c   C:\\test.bat");
    r.waitFor();

  3. #3
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 35
    Par défaut
    Citation Envoyé par GérardMartinelli Voir le message
    Si tu enlèves le start dans ta commande que se passe-t-il ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Runtime r = Runtime.getRuntime();
    Process p = r.exec("cmd.exe /c   C:\\test.bat");
    r.waitFor();
    Il me lance bien mon .bat mais il ne m'affiche pas la fenêtre dos.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Le processus lancé est invisible
    Seul le processus lancé est accessible (lecture, attente)

    Toi, tu veux le voir dans une console, tout en y accédant.

    Solution d'après moi :
    - Tu le lances normalement, tu lis le flux de sortie, tu l'affiches dans une console custom (pas pratique)
    - Exécuter directement un script .bat (invisible), qui lance un second .bat (visible), et tu waitFor le Process retourné par l'exécution du 1er .bat

  5. #5
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 35
    Par défaut
    C'est bon j'ai trouvé une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Runtime r = Runtime.getRuntime();
    Process p = r.exec("cmd.exe /c start /w C:\\test.bat");
    r.waitFor();
    Comme ça, java lance une fenêtre dos en invisible et attend qu'elle se termine, et de même, le fenêtre dos lance à son tour le .bat et attend qu'il se termine ainsi tant que le .bat n'est pas terminé le programme java attend.

    Merci de votre aide.

    Bye.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/05/2010, 17h21
  2. Lancer un .bat depuis une application Java
    Par shindara dans le forum Langage
    Réponses: 1
    Dernier message: 01/05/2007, 10h57
  3. Méthode pour lancer une appli Java au démarrage
    Par Bridou dans le forum Linux
    Réponses: 2
    Dernier message: 11/11/2006, 15h40
  4. Lancer une appli Java en tant que Service Windows
    Par danyboy85 dans le forum Général Java
    Réponses: 4
    Dernier message: 28/09/2006, 12h17
  5. [Stratégie] Lancer une url à partir d'une appli java
    Par yobogs dans le forum Général Java
    Réponses: 4
    Dernier message: 14/04/2005, 17h10

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