L'exécution d'un programme java à partir d'un autre programme java

Je suis en train de travailler sur un programme java simple. Simplement, il compile et exécute un autre programme java. Je suis à l'Exécution.fonction exec() pour compiler et exécuter. Il n'y a pas de problème à la compilation. mais lorsqu'il s'exécute, si le deuxième programme a besoin d'une entrée pour lire à partir du clavier, je ne peux pas lui donner de la maîtrise du processus. J'ai utilisé getOutputStream() fonction. mais il ne pouvait pas aider. Je vais vous donner mon code.

public class sam {  
    public static void main(String[] args) throws Exception {  
        try { 
             Process p = Runtime.getRuntime().exec("javac sam2.java");
             Process p2 = Runtime.getRuntime().exec("java sam2");
             BufferedReader in = new BufferedReader(  
                                new InputStreamReader(p2.getInputStream()));

             OutputStream out = p.getOutputStream();
             String line = null; 
             line = in.readLine();
             System.out.println(line);
             input=input+"\n";
             out.write(input.getBytes());
             p.wait(10000);
             out.flush();
        }catch (IOException e) {  
             e.printStackTrace();  
        }  
    }  
}  

C'est mon programme de master(sam.java).

Le code suivant est celui de sam2.java

public class sam2 {  
public static void main(String[] args) throws Exception {  

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String str; 
    System.out.println("Enter the number..\n");
    str = br.readLine(); 
    System.out.println(Integer.parseInt(str));

    }  
}  

Il n'y a pas de problème, si mon deuxième programme a l'impression que les énoncés. Mais le problème se pose lorsque j'ai lu quelque chose de l'autre.

vous auriez à faire une sorte de tuyau de l'entrée standard STDIN de sam à sam2 mais peut-être plus de mal que de sa valeur.
S'il vous plaît apprendre conventions de nommage java et de s'y tenir, ici: les noms de classe doit commencer avec une lettre majuscule.
j'essayais de montrer un exemple simple. merci pour vos conseils.. 🙂

OriginalL'auteur BheeMa | 2013-03-05