1. 子进程并没有自己的控制台,因此,它并不会输出任何信息。
2. 如果要输出子进程的输出信息,可以通过Process中的getInputStream得到子进程的输出流(在子进程中输出,在父进程中就是输入),然后将子进程中的输出流从父进程的控制台输出。
3. 子进程除了输出信息,还有输入信息。既然子进程没有自己的控制台,那么输入信息也得由父进程提供。
- import java.io.*;
- public class Test
- {
- public staticvoid main(String[] args)
- {
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- System.out.println("由父进程输入的信息:" + br.readLine());
- }
- }
- // Test_Exec_In.java
- import java.io.*;
- public class Test_Exec_In
- {
- public staticvoid main(String[] args)
- {
- Runtime run = Runtime.getRuntime();
- Process p = run.exec("java test2");
- BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
- bw.write("向子进程输出信息");
- bw.flush();
- bw.close(); // 必须得关闭流,否则无法向子进程中输入信息
- // System.in.read();
- }
- }