classe d'exécution de Java permet d'accéder à l'environnement d'exécution dans lequel l'application s'exécute . Les méthodes exec de Runtime vous permettent d'exécuter des programmes externes à partir d'une application Java. Exécuter des applications externes dans une application Java vous permet d'ouvrir une page Web dans un navigateur , d'interagir avec les utilitaires du système d'exploitation ou de lancer une fenêtre de console. Obtenez le Runtime Environment
Toutes les applications Java ont une instance de l'environnement d'exécution . Utilisez la méthode getRuntime () de Runtime à accéder à cet objet . Par exemple:
Runtime rt = Runtime.getRuntime ();
exécuter une application
Runtime externe offre plusieurs façons d'appeler la méthode exec , qui retourne un objet Process . La façon la plus simple d'exécuter une application externe est la méthode d'exécution exec (String command) , où «commande» est la ligne de commande qui exécute l'application. L'appel suivant exécute la commande "ls" pour obtenir une liste de répertoire pour le répertoire root sur un système Linux ou Unix:
Process p = rt.exec ( "ls /");
la méthode exec peut aussi être appelé avec un tableau contenant la commande et ses arguments , les paramètres des variables d'environnement et le répertoire de travail .
Obtenez Informations sur le processus
le processus classe fournit un accès au flux d'entrée, flux de sortie , le flux d'erreur et la valeur de sortie du processus exécuté .
la méthode de Process.getInputStream donne accès aux flux de sortie standard du processus par le biais du flux d'entrée de votre application. Le courant doit être tamponnée . Reprenons l'exemple précédent, le code suivant accède à la sortie de la commande "ls /" commande imprime les résultats
InputStream istrm = p.getInputStream (); . InputStreamReader istrmrdr = new InputStreamReader ( istrm ) ; BufferedReader buffrdr = new BufferedReader ( istrmrdr ) ;
données de chaîne de
; while (( data = buffrdr.readLine ()) = null ! ) {System.out.println ( données); }
même, vous peut capturer le courant d' erreur en utilisant le processus de getErrorStream et en utilisant un courant d' entrée de tampon pour gérer les données. Votre application peut aussi envoyer des données vers le flux d'entrée du processus de via le flux de sortie de votre application. Utilisez de la méthode getOutputStream et tamponner le flux de sortie.
Quitter
saisir la valeur de sortie du processus à l'aide de processus Process méthode de exitValue afin de déterminer s'il est sorti normalement. S'assurer que le processus s'est terminé en utilisant la méthode de waitFor de processus pour provoquer le thread courant d'attendre que le processus s'arrête . Par exemple, saisir la valeur de sortie dans une variable, qui peut être utilisé plus tard pour prendre des décisions sur la façon dont votre demande sera traitée :
int EV = 0; if (! P.waitFor () = 0 ) { ev = p.exitValue (); }
Un processus peut être tué en utilisant le processus «détruire méthode
Considérations
Java 5 a introduit la classe ProcessBuilder à remplacer Runtime.exec . ProcessBuilder rend plus facile à personnaliser le processus , et permet de mieux contrôler le démarrage du processus .
Avertissements
Une des principales caractéristiques du langage de programmation Java est sa portabilité à de multiples plates-formes informatiques . Appel processus externes qui sont spécifiques à un système d'exploitation particulier maintient votre demande d'être portable. Évitez d'utiliser Runtime.exec lorsqu'une méthode pour atteindre le même objectif existe dans le langage Java .