java多次调用CMD时,加入“cmd.exe”会卡住的原因是?

wsy2846513 2017-11-05 01:57:18
我在多次调用CMD的时候,在参数内加上“cmd.exe”,程序就会卡住,但是如果没有“cmd.exe”,就能够正常完成多次调用,这是为什么呢?

通过参数传入要执行的命令,代码如下:
    public ArrayList<String> executeCmdArr(ArrayList<String> cmdCommandArr) {
ArrayList<String> cmdLog = new ArrayList<String>();
String lineData;
try {
for (String parameter : cmdCommandArr) {
System.out.println("CallCMD -- executeCmdArr:\t" + parameter);
process = Runtime.getRuntime().exec(parameter);
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream(),"GBK"));

while ((lineData = reader.readLine()) != null){
System.out.println("cmdarr: \t" + lineData);
cmdLog.add(lineData);
}
}
return cmdLog;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}


当参数中没有“cmd.exe时”,能够正常完成全部调用:
        cmdCommandArr = new ArrayList<String>() {{
add("ipconfig");
add("java -version");
}};


当参数中游“cmd.exe”时,第一个命令执行之后,无法退出循环,
       cmdCommandArr = new ArrayList<String>() {{
add("cmd.exe /k ipconfig");
add("cmd.exe /k java -version");
}};


在网上找的例子中,有的调用时用了“cmd.exe”,有的没用。。。所以在调用时有没有“cmd.exe”的区别是什么呢?为什么会卡住不动呢?求解答
...全文
212 1 点赞 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wsy2846513 2017-12-24
难道是我分给的少的原因么。。
  • 打赏
  • 举报
回复
相关推荐
发帖
Java
加入

4.8w+

社区成员

Java相关技术讨论
申请成为版主
帖子事件
创建了帖子
2017-11-05 01:57
社区公告
暂无公告