以前有一段程序,通过java代码执行windows 的cmd程序,并且获得cmd程序的返回值,一直正常,后来重装了一个64位的系统之后就不能正常运行了,无法返回程序执行结果。
代码如下:
import java.io.BufferedReader;
import java.io.InputStreamReader;public class CmdUtil { /**
* 执行CMD命令,并返回String字符串,在戴尔笔记本64位上无法返回结果值
*/
public static String executeCmd(String strCmd) throws Exception {
Process p = Runtime.getRuntime().exec("cmd /c " + strCmd);
StringBuilder sbCmd = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
sbCmd.append(line + "\n");
}
System.out.println(sbCmd);
return sbCmd.toString();
}
public static void main(String[] args) throws Exception {
String result = CmdUtil.executeCmd("ping www.baidu.com");
System.out.println("返回结果:" + result);
}
}用eclipse执行的结果如下(无法获取返回值)
我在另外一台电脑上使用的是同样的64位系统,这段程序又是正常的,请问各位这是怎么回事儿啊(配置问题,或者其他什么问题)?通过windows 系统cmd命令直接ping的结果
代码如下:
import java.io.BufferedReader;
import java.io.InputStreamReader;public class CmdUtil { /**
* 执行CMD命令,并返回String字符串,在戴尔笔记本64位上无法返回结果值
*/
public static String executeCmd(String strCmd) throws Exception {
Process p = Runtime.getRuntime().exec("cmd /c " + strCmd);
StringBuilder sbCmd = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
sbCmd.append(line + "\n");
}
System.out.println(sbCmd);
return sbCmd.toString();
}
public static void main(String[] args) throws Exception {
String result = CmdUtil.executeCmd("ping www.baidu.com");
System.out.println("返回结果:" + result);
}
}用eclipse执行的结果如下(无法获取返回值)
我在另外一台电脑上使用的是同样的64位系统,这段程序又是正常的,请问各位这是怎么回事儿啊(配置问题,或者其他什么问题)?通过windows 系统cmd命令直接ping的结果
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货