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 4871 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

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...

Publié par Patrice dans tuto

Bonjour

je cherche a activer mod_headers chez 1and1, impossible de mettre mes jpg en cache, auriez vous une piste ? merci !

Publié par math dans java

Salut, quelle est la modification a faire pour pouvoir utiliser une webcam usb qui n'est pas une logitech?

Publié par diet dans CMS

Mais programme-dietetique.com est un site. En logiciel il y a diettesettics.com

Publié par nicolasterraes dans tuto

bonjour,
je ne comprends pas cette tape:

Les liens vers les feuilles de style et les fichier js sont declares dans les pages HTML. Modifiez les balises meta ainsi:
Feuille de style:
d...