Développer en Java/Lancement de processus
Apparence
Pour lancer des processus à partir de java, il faut faire appel à :
- la méthode Runtime.exec
- la classe ProcessBuilder
Utilisation de Runtime.exec
[modifier | modifier le wikicode]Exemple de code exécutant la commande Linux ls -alth
:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class JavaLs
{
public static void main(String[] args)
{
try
{
Process process = Runtime.getRuntime().exec("ls -alth");
int i = process.waitFor();
if ( i != 0 )
{
System.err.println("La commande ne s'est pas terminée normalement (code "+i+").");
System.exit(-1);
}
BufferedReader stdout = new BufferedReader (
new InputStreamReader ( process.getInputStream() ) );
if ( stdout.ready() )
{
String line = stdout.readLine() ;
while(line != null)
{
System.out.println(line);
line = stdout.readLine() ;
}
}
stdout.close();
BufferedReader stderr = new BufferedReader (
new InputStreamReader ( process.getErrorStream() ) );
if ( stderr.ready() )
{
String errline = stderr.readLine() ;
while(errline != null)
{
System.err.println(line);
errline = stdout.readLine() ;
}
}
stderr.close();
}
catch (InterruptedException e)
{
System.err.println("La commande ne s'est pas terminée normalement :");
e.printStackTrace();
System.exit(-1);
}
catch (IOException e)
{
System.err.println("La commande ne s'est pas terminée normalement :");
e.printStackTrace();
System.exit(-1);
}
System.exit(0);
}
}