我想在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语言设置为中文。有没有办法让它输出成英文?
查看此链接:如何从java代码中检测操作系统语言(区域设置)
您需要找到一种方法,将程序中的语言环境临时设置为英语。
试试这个:
https://wandersick.blogspot.com/p/change-non-english-command-line.html
或执行
chcp 437
C:Usersjavaserv> chcp 437
Active code page: 437
希望有帮助!