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

Java Discussion :

ouvrir fenetre DOS et attendre la fin de l'execution


Sujet :

Java

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 834
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 834
    Points : 994
    Points
    994
    Par défaut ouvrir fenetre DOS et attendre la fin de l'execution
    Bonjour,

    Je lance une commande DOS en laissant la fenetre ouverte. Le problème est que je voudrais que l'application java s'arrête le temps du traitement. voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    		Runtime r = Runtime.getRuntime();
     
    		try {
    			final Process p = r.exec(new String[]{"cmd.exe", "/C", "start monDossier\\monExe -x -y"});
     
    			p.waitFor(); // attend la fin de l'execution ?
     
    			p.getInputStream().close();
    			p.getOutputStream().close();
    			p.getErrorStream().close();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (InterruptedException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    => le probleme est que l'appli java continu de tourner alors que la commande DOS n'a pas finie de s'exécuter
    => aussi, comment fait-on pour exécuter plusieurs commandes DOS dans la même fenêtre ?

    merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 834
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 834
    Points : 994
    Points
    994
    Par défaut
    En utilisant la classe Shell, ça bloque bien l'application java mais le fait de mettre le paramètre "start" pour rendre la fenêtre DOS visible empêche de pourvoir récupérer les messages d'erreurs de la commandes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    		StringBuilder out = new StringBuilder();
    		StringBuilder err = new StringBuilder();
     
    		Shell shellobj = new Shell();
    		shellobj.setCharset("cp850");
     
    		try {
     
    			shellobj.command("start monDossier\\monExe -x -y").output(out).error(err).consume();
     
    			//shellobj.command("arp -d *").output(out).error(err).consume();
    			//shellobj.command("dir .45.").output(out).error(err).consume();
    		} catch (IllegalStateException e){
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
    		// lecture des messages de retour
                    // => ne focntionne pas
    		if (!out.toString().equals("")){
    			consoleAddLine(out.toString(), normalStyle);
    		}
    		if (!err.toString().equals("")){
                    // => ne focntionne pas
    			consoleAddLine(err.toString(), alerteStyle);
    		}
    aussi je ne vois toujours pas comment exécuter plusieurs commandes (ex: mettre la commande "pause" pour ne pas que la fenêtre DOS se ferme toute seule)

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/04/2012, 14h57
  2. AIR::Ouvrir un navigateur web et attendre la fin de l'execution
    Par MedyAndFriends dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 23/12/2011, 11h08
  3. fenetre DOS qui disparait après fin d'execution
    Par Gwindor dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 10/07/2008, 09h36
  4. ouvrir fenetre dos et executer un .bat
    Par crazykangourou dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 14/03/2007, 08h35
  5. [Dos] Lancer une commande dos sans attendre la fin
    Par MrEddy dans le forum Windows
    Réponses: 4
    Dernier message: 09/06/2005, 17h38

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