我想在Windows上运行一个命令行程序,这里是代码。
public static String runcmd(String cmd) throws IOException {
ProcessBuilder builder = new ProcessBuilder(cmd);
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
StringBuilder sb = new StringBuilder();
while (true) {
line = r.readLine();
if (line == null)
break;
sb.append(line + "%SKIPLINE%");
}
System.out.println(sb.toString());
return sb.toString();
}
除了输出是中文之外,一切正常,因为我的Windows语言设置为中文。有没有办法让它输出英文?
processBuilder.environment().put("LANG", "en_US.UTF-8")
为进程设置LANG环境变量即可。 - Svetlin Zarev