如何与Java中的另一个进程进行通信?

时间:2019-04-24 12:05:46

标签: java process

我想从我的Java代码运行另一个进程并与之通信;我的意思是主程序将调用另一个程序并提供其参数。

换句话说:第二个程序正在运行并要求输入参数,主程序应读取第二个程序的输出,并且根据输出,主程序应为她提供值。 我不知道该怎么写这段代码。 非常感谢。

主程序:

ProcessBuilder builder = new ProcessBuilder("password.jar", "Aharon");
builder.redirectErrorStream(true);
Process p = builder.start();
InputStream i = p.getInputStream();
OutputStream o = p.getOutputStream();
BufferedReader br = new BufferedReader(new
    InputStreamReader(i));
BufferedWriter bw = new BufferedWriter(new
    OutputStreamWriter(o));
bw.write("aharon");
bw.flush();
System.out.println(br.readLine());
String sudo = "am326294642";
bw.write("aharon");
bw.flush();
int x;
System.out.println(br.readLine());
while ((x = i.read()) != -1)
  System.out.print((char) x);
o.write(sudo.getBytes());
while ((x = i.read()) != -1)
  System.out.print((char) x);

应运行的第二个程序

Scanner in = new Scanner(System.in);
System.out.println("insert your password");
while (!in.next().equals("aharon"))
  System.out.println("wrong!!");
System.out.println("you passed !!! !!! !");

0 个答案:

没有答案