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 :

Lancer une commande systeme en JAVA


Sujet :

Java

  1. #1
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Points : 88
    Points
    88
    Par défaut Lancer une commande systeme en JAVA
    Bonjour,

    Je voudrai lancé une commande système dans un programme JAVA et je rencontre un problème :

    Exemple du bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    static void executer_la_commande( String commande ) {
    	try {
    		Runtime r = Runtime.getRuntime();
    		Process p = r.exec(commande);
    		p.waitFor();
    	}
    	catch(Exception e) {
    		erreur_grave("EXEC ERROR;" + commande + ";" + e.toString());
    	}
     
    }
     
    executer_la_commande( "cmd /c dir" );
    Je reste bloquer, le programme ne me rend pas la main.

    Petite précision : Si je mets la commande notepad avec un fichier en argument, le traitement est correcte.
    Si je met un fichier bat, le traitement se bloque.

    Merci à ceux qui peuvent m'aider

    A+

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806

  3. #3
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Points : 88
    Points
    88
    Par défaut
    Merci, mais je ne comprends pas la FAQ.

    Je suis novice en java, j'ai pris bêtement le bout de code de la FAQ, et à la compilation j'ai une erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    test.java:46: unreported exception java.io.IOException; must be caught or declar
    ed to be thrown
            final Process p = r.exec(commande);
                                    ^
    1 error
    Voilà 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    static void executer_la_commande( String commande ) {
    	Runtime r = Runtime.getRuntime();
    	final Process p = r.exec(commande);
    	new Thread() {
    		public void run() {
    			try {
    				BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
    				String line = "";
    				try {
    					while((line = reader.readLine()) != null) {
    						// Traitement du flux de sortie de l'application si besoin est
    					}
    				} finally {
    					reader.close();
    				}
    			} catch(IOException ioe) {
    				ioe.printStackTrace();
    			}
    		}
    	}.start();
     
    	new Thread() {
    		public void run() {
    			try {
    				BufferedReader reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
    				String line = "";
    				try {
    					while((line = reader.readLine()) != null) {
    						// Traitement du flux d'erreur de l'application si besoin est
    					}
    				} finally {
    					reader.close();
    				}
    			} catch(IOException ioe) {
    				ioe.printStackTrace();
    			}
    		}
    }.start();
    }

    Merci pour l'aide

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806

  5. #5
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Points : 88
    Points
    88
    Par défaut
    En effet ça va nettement mieux

    J'ai encore une petite question :
    La commande s'effectue en tâche de fond ?
    Après l'appel de la fonction, je teste la présence d'un fichier qui est créé par la commande, et le fichier n'est pas vu ce qui me génère une erreur.
    Comment faut il que je fasse ?


    Merci

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par henri93 Voir le message
    En effet ça va nettement mieux

    J'ai encore une petite question :
    La commande s'effectue en tâche de fond ?
    oui
    Comment faut il que je fasse ?
    Pour attendre la fin de la commande?

  7. #7
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Points : 88
    Points
    88
    Par défaut
    Merci tchize c'est impec

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

Discussions similaires

  1. Comment lancer une commande java ?
    Par chady dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 17/03/2009, 13h39
  2. Lancer une commande (type ligne de commande) depuis programme Java
    Par rprom1 dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 15/12/2006, 12h06
  3. Comment lancer une command system en PLSQL
    Par charles_mourot dans le forum PL/SQL
    Réponses: 1
    Dernier message: 07/06/2006, 12h24
  4. [system] lancer une commande dos
    Par romuluslepunk dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 20/08/2005, 11h54
  5. [C#] Lancer une commande systeme ?
    Par Oberown dans le forum Windows Forms
    Réponses: 1
    Dernier message: 25/07/2005, 11h29

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