我試圖從Java運行多個命令shell。我能夠做到這一點(並使用PrintWriter在控制檯中獲取輸出)。但是,我希望能夠在單獨的字符串中獲取每個命令的輸出。那可能嗎?在Java中使用PrintWriter
下面是代碼的一部分:
File wd = new File("/bin");
Process proc = null;
BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(proc.getOutputStream())), true);
out.println("cd ..");
out.println("ls");
System.out.println("moving to /var directory");
out.println("cd /var/");
out.println("ls");
//get output of ls command in string variable
out.println("cd ..");
out.println("cd /etc/");
out.println("ls -a");
out.println("ps");
out.println("exit");
try {
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
proc.waitFor();
in.close();
out.close();
proc.destroy();
}
catch (Exception e) {
e.printStackTrace();
}
也許你可以在Java(File.listFiles())中執行'ls',然後向'ps'調用操作系統(或者讓一些Java庫也可以這麼做)? – Thilo 2012-07-13 08:29:01
感謝您的迴應,但將每個命令的輸出放在一個文件中將不是有用的(在文件中寫入然後解析它)...我仍在尋找將PrintWriter轉換爲字符串的方法......它將解決它。 .. – Mas 2012-07-13 08:43:42