当在Windows下执行命令时,例如:
try {
Process p = Runtime.getRuntime().exec("D:/javac.exe");
BufferedReader br = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String buff = null;
while ((buff = br.readLine()) != null) {
System.out.println(buff);
}
} catch (IOException e) {
e.printStackTrace();
}
有可能不显示中文,而是显示一堆乱码。这是因为从子进程获取输入流时没有设置编码。可以将代码第三行改为:
BufferedReader br = new BufferedReader(new InputStreamReader(
p.getInputStream(), Charset.forName("GBK")));
这样就能正常显示中文了。
本文参考了如下信息: