簡體   English   中英

使用Java運行多個系統命令

[英]Running multiple system commands using Java

如何依次運行多個Windows系統命令(使用Java),第二個取決於第一個的結果?

像這樣:

adb.exe -s emulator-5554 shell
ls

並獲得列表結果。

這是我的源代碼,但是不起作用:

public void connectToDevice(String device) {
    List<String> cmd = new ArrayList<String>();
    cmd.add("adb.exe -s " + device + " shell");
    cmd.add("ls");
    try {
        ProcessBuilder pb = new ProcessBuilder(cmd);
        pb.redirectErrorStream(true);
        Process process = pb.start();
    } catch (IOException e) {
        System.err.println(e.getMessage());
    }
}

ProcessBuilder(List<String>)構造函數不旨在並行運行多個命令。 它將第一個元素列表作為命令,將后續元素作為其參數,因此實際執行的是adb.exe -s emulator-5554 shell ls作為一個命令。 將其分為兩個過程:

ProcessBuilder pb1 = new ProcessBuilder("adb.exe -s " + device + " shell");
pb1.redirectErrorStream(true);
Process p1 = pb1.start();
p1.waitFor();

ProcessBuilder pb2 = new ProcessBuilder("ls");
pb2.redirectErrorStream(true);
Process p2 = pb2.start();
p2.waitFor();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM