2
如何使用Runtime.getRunTime.exec()發送和接收多個輸入。使用java的交互式命令Runtime.getRunTime.exec()
例如,如果我想運行諸如openSSL之類的東西來生成csr,它會詢問諸如狀態,城市,常用名等內容。
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
爲什麼不使用p.getInputStream()來讀取你所需要的使用out.write而 發送()相應地發送數據。
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?
這就是我試圖做的,但它似乎是寫工作不正常。我會用更多的解釋來更新這個問題。 – boyco 2012-02-21 23:44:36
不要忘記沖洗:) – james 2012-02-21 23:49:12
這工作,我嘗試使用沖洗前,但我想這麼多不同的東西,我必須搞砸了別的東西,導致它不工作。謝謝! – boyco 2012-02-21 23:57:54