How can I send and receive multiple inputs using Runtime.getRunTime.exec().
For example if I wanted to run something such as openSSL to generate a csr, it will ask for things such as state, city, common name.. and so on.
Process p = Runtime.getRuntime().exec(cmd);
OutputStream out = p.getOutputStream();
//print stuff p.getInputStream();
//Now i want to send some inputs
out.write("test".getBytes());
//flush and close??? don't know what to do here
//print what ever is returned
//Now i want to send some more inputs
out.write("test2".getBytes());
//print what ever is returned.. and so on until this is complete
why not use p.getInputStream() to read what you need to send while using out.write() to send data accordingly.
Process p = Runtime.getRuntime().exec(cmd);
OutputStream out = p.getOutputStream();
//print stuff p.getInputStream();
out.write("test".getBytes());
out.close(); //if i don't close, it will just sit there
//print stuff p.getInputStream();
out.write("test".getBytes()); // I can no longer write at this point, maybe because the outputstream was closed?
why not use
p.getInputStream().read()
to read what you need to send while usingout.write()
to send data accordingly.here is an example taken from: http://www.rgagnon.com/javadetails/java-0014.html