2014-12-19 179 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");