MasterProcess.java

import java.io.*;
public class MasterProcess {
  public static void main(String[] args)
    throws IOException, InterruptedException {
    // Récupération du runtime courant et lancement du processus esclave
    Runtime runtime = Runtime.getRuntime();
    Process slave = runtime.exec("java SlaveProcess");
    // Récupération d'un flot de données à destination de l'entrée 
    // standard du processus esclave pour écriture des opérandes
    DataOutputStream out = new DataOutputStream(slave.getOutputStream());
    out.writeInt(3);
    out.writeInt(8);
    out.flush();
    System.out.println("Opérandes écrites");
    // Récupération d'un flot de lecture de données depuis la sortie 
    // standard du processus esclave pour lecture du résultat  
    DataInputStream in = new DataInputStream(slave.getInputStream());
    int result = in.readInt();    
    System.out.println("Résultat lu : " + result);
    out.write(0); // Écriture d'un octet pour terminer l'esclave
    out.flush();
    slave.waitFor(); // Attente de la terminaison du processus esclave
    System.out.println("Esclave terminé : statut " + slave.exitValue());
    in.close();
    out.close();
    System.out.println("Terminaison du processus maître");
  }
}