Publié le 23/09/2010
Auteur axel
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Lancer un executable ou une commande externe

L'exécution d'une application externe est également possible en JAVA. Le langage apporte toutes les fonctionnalités pour lancer puis contrôler un exécutable crée par un autre développeur.

Lancer un exe sous Java

La class Runtime dispose de 2 fonctions pour lancer et controler un executable.
- exec(): lance le processus,
- waitFor(): attendre la fin de l'execution.

Dans l'exemple suivant, Runtime est utilisé pour lancer la calculatrice de Windows et lancer la commande DOS dir sur le répertoire courant (sous Linux, lancer la commande ls.)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
 
/**
 * Lancer un exécutable ou une commande externe
 */
public class RunExternal {
 
    public static void launch(String command) {
        try {
            Runtime runtime = Runtime.getRuntime();
            Process process = runtime.exec(command);
            BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line = null;
            while ((line = input.readLine()) != null) {
                System.out.println(line);
            }
            //Attendre la fin de l'execution
            if (process.waitFor() != 0) {
                System.out.println("Une erreur est survenue ");
            }
        } catch (InterruptedException ex) {
            Logger.getLogger(RunExternal.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(RunExternal.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 
    /**
     * Exemples
     */
    public static void main(String args[]) {
        //Lancer la calculatrice de Windows
        RunExternal.launch("C://WINDOWS//system32//calc.exe");
        //Lister le contenu d'un répertoire avec DOS
        RunExternal.launch("cmd /c dir");
    }
}

Agir avec un programme externe

L'exemple ci-dessous contient une boucle servant à capturer le résultat de l’exécutable, par exemple la commande dir utilisée sous DOS affichant les données suivantes dans la console.

Le numero de serie du volume est 5xx1-8x27
Repertoire de C:Documents and SettingsProprietaireMes documentsNetBeansProjectstemp_test
23/08/2010 09:54 <REP> .
23/08/2010 09:54 <REP> ..
23/08/2010 09:54 <REP> build
23/08/2010 09:49 3722 build.xml
23/08/2010 09:54 <REP> dist
23/08/2010 09:37 85 manifest.mf
23/08/2010 09:37 <REP> nbproject
23/08/2010 09:37 <REP> src
23/08/2010 09:37 <REP> test
2 fichier(s) 3807 octets
7 Rep(s) 57216233472 octets libres

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
23/09/2010
Visualisation
vu 5178 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par ali dans logiciel

it is very good i am very happy becose for hand cap helpn tha is a good work

Publié par skud dans java

La methode getTextFile() etant statique, il faut donc l'appeler de maniere statique. Modifier l'exemple de la maniere suivante

System.out.print(HTTPLoader.getTextFile('http://fobec.com/CMS/ind...

Publié par snoop dans java

simple, rapide et effectif du premier coup.
Merci!

Publié par amelia dans java

pour 30 sa donne 1346269

Publié par Coll dans java

Excuse moi, mais pourrais tu expliquer un peu plus precisement ce que tu fais lorsque tu convertis en gris je comprends l'idee mais pas ce que chaque action fait precisement et le cacth a la fin. Parc...