2014-12-19 180 views
-1

如何在下面的程序中發送兩個以上的參數?請諮詢ProcessBuilder - 傳遞多個參數

ProcessBuilder pb = new ProcessBuilder("/bin/bash", scriptPath + script, "myArg1", "myArg2"); 
    Map<String, String> env = pb.environment(); 
    env.put("VAR1", "myValue"); 
    env.put("VAR2", env.get("VAR1") + "suffix"); 
    try { 
     Process p = pb.start(); 
     p.waitFor(); 

     BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); 
     String line; 

     while ((line = br.readLine()) != null) { 
      System.out.println(line); 
     } 

    } catch (IOException e) { 
     e.printStackTrace(); 
    }catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

請突出和描述參數 – Lizz 2014-12-19 02:26:42

+0

將更多參數添加到構造函數調用中? – vanza 2014-12-19 05:43:43

回答

0

您可以另一個值添加到地圖:因爲它需要變參

Map<String, String> env = pb.environment(); 
env.put("VAR1", "myValue"); 
env.put("VAR2", env.get("VAR1") + "suffix"); 
env.put("VAR3", "one more"); 

或者你也可以添加其他參數的構造函數:

ProcessBuilder pb = new ProcessBuilder("/bin/bash", 
    scriptPath + script, "myArg1", "myArg2", "myArg3");