簡體   English   中英

如何使用java.lang.process運行多個Linux命令?

[英]How to run multiple Linux commands using java.lang.process?

我有一個如下所示的例子。 命令

iscsiadm -m discovery -t st -p iscsiInfo.ipAddress

將在這里執行,如果我想在執行此命令后執行額外命令,如果

ls /var/lib/iscsi/nodes

如何使用java.lang.process做到這一點?

添加,我只需要執行第一個命令,但我需要獲得第二個命令結果並在GUI中顯示它。

public static void main(String args[]) {
    try {
       String line;
       Process p = Runtime.getRuntime().exec("iscsiadm -m discovery -t st -p iscsiInfo.ipAddress");
       BufferedReader bri = new BufferedReader
        (new InputStreamReader(p.getInputStream()));
       BufferedReader bre = new BufferedReader
        (new InputStreamReader(p.getErrorStream()));
       while ((line = bri.readLine()) != null) {
         System.out.println(line);
       }
       bri.close();
       while ((line = bre.readLine()) != null) {
         System.out.println(line);
       }
       bre.close();
       p.waitFor();
       System.out.println("Done.");
     }
     catch (Exception err) {
       err.printStackTrace();
     }
}

您可以運行運行多個命令的shell。

例如

Runtime.getRuntime().exec("sh", "-c", 
          "iscsiadm -m discovery -t st -p iscsiInfo.ipAddress &&"
          +" ls /var/lib/iscsi/nodes");

如果使用ProcessBuilder,則可以將錯誤重定向到標准輸出,並使用一個流進行讀取。

暫無
暫無

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

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