Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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 获取进程标准输出-Mac OS X_Java_Macos_Stdout - Fatal编程技术网

Java 获取进程标准输出-Mac OS X

Java 获取进程标准输出-Mac OS X,java,macos,stdout,Java,Macos,Stdout,我制作了一个MacOSX(本机)应用程序,在标准输出上写一行 在Java程序中,我需要启动该应用程序,并获得它在标准输出上写入的内容 以下代码适用于Windows应用程序,但不适用于Mac OS X应用程序 ProcessBuilder pb = new ProcessBuilder(command); Process p = pb.start(); p.waitFor(); BufferedReader is = new BufferedReader(new InputStreamReader

我制作了一个MacOSX(本机)应用程序,在标准输出上写一行

在Java程序中,我需要启动该应用程序,并获得它在标准输出上写入的内容

以下代码适用于Windows应用程序,但不适用于Mac OS X应用程序

ProcessBuilder pb = new ProcessBuilder(command);
Process p = pb.start();
p.waitFor();
BufferedReader is = new BufferedReader(new InputStreamReader(p.getInputStream()));
result = is.readLine();
我做错了什么


编辑:命令是
open-W-nmyapp.app--args myargs

我不知道为什么它在Windows上工作。waitFor将等待进程运行完毕。当时,进程中的标准输出不再存在

您应该尝试切换waitFor调用和流的读取


编辑:我现在没有Mac电脑来测试,但我不确定
open
命令是否真的输出了应用程序的stdout。您可能必须直接启动.app包中的二进制文件。大多数情况下,它类似于
MyApp.app/Contents/MacOS/MyApp args

键可能是命令。这是什么?另请参见:命令是
open-W-nmyapp.app--args myargs
实际上,对于少量的输出,这应该可以工作,因为流在某种程度上被缓冲了。谢谢!它起作用了!我移动了waitFor呼叫,并按照您所说的方式启动了应用程序。谢谢:)