我需要運行兩個命令Linux中使用這樣的Java代碼:連續運行的Linux命令與Java運行時EXEC
Runtime rt = Runtime.getRuntime();
Process pr=rt.exec("su - test");
String line=null;
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
while((line=input.readLine()) != null) {
System.out.println(line);
}
pr = rt.exec("whoami");
input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
line=null;
while((line=input.readLine()) != null) {
System.out.println(line);
}
int exitVal = pr.waitFor();
System.out.println("Exited with error code "+exitVal);
} catch(Exception e) {
System.out.println(e.toString());
e.printStackTrace();
}
問題是第二命令(「WHOAMI」)的輸出不顯示當前用戶在第一個命令(「su - 測試」)上使用! 請問這個代碼有什麼問題嗎?
try語句丟失。請始終發佈一個可運行的示例。 – reindeer