Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能给我解释一下为什么当我从Java运行同一个命令时会得到不同的输出吗_Java_Osx Lion - Fatal编程技术网

有人能给我解释一下为什么当我从Java运行同一个命令时会得到不同的输出吗

有人能给我解释一下为什么当我从Java运行同一个命令时会得到不同的输出吗,java,osx-lion,Java,Osx Lion,当我运行命令时 “pmset-g batt | egrep'([0-9]+\%).'-o--COLOR=auto | cut-f1-d';” 在OSX终端中,它输出电池百分比(例如55%) 但是当我在Java代码中运行相同的命令时,我得到 “当前从“电池电源”提取” 下面是它在我的Java代码中的外观: String cmd = "pmset -g batt | egrep '([0-9]+\\%).*' -o --colour=auto | cut -f1 -d';'"; Runtime rt

当我运行命令时 “pmset-g batt | egrep'([0-9]+\%).'-o--COLOR=auto | cut-f1-d';” 在OSX终端中,它输出电池百分比(例如55%)

但是当我在Java代码中运行相同的命令时,我得到 “当前从“电池电源”提取”

下面是它在我的Java代码中的外观:

String cmd = "pmset -g batt | egrep '([0-9]+\\%).*' -o --colour=auto | cut -f1 -d';'";
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(cmd);
BufferedReader stdOutput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));    
String output = stdOutput.readLine();
System.out.println(output);
我以为这和我正在使用的双反斜杠有关,但我检查了一下,我不认为这是原因


谢谢

我认为您需要从您的流程中了解更多信息,您应该使用一个


您是否考虑过从stdOutput获取多条线路?
for (;;) {
  String output = stdOutput.readLine();
  if (output == null) {
    break;
  }
  System.out.println(output);
}