将mac os终端的内容写入java文件

将mac os终端的内容写入java文件,java,macos,Java,Macos,我是mac os的新手。我使用了java中的以下代码来获取系统详细信息。它打开一个终端以显示该命令的结果。我需要把这些细节归档。我怎样才能得到它 String[] command = {"/usr/bin/open", "/Applications/Utilities/System Profiler.app"}; Process proc = Runtime.getRuntime().exec(command); int resultCode = proc.waitFor(); if (resu

我是mac os的新手。我使用了java中的以下代码来获取系统详细信息。它打开一个终端以显示该命令的结果。我需要把这些细节归档。我怎样才能得到它

String[] command = {"/usr/bin/open", "/Applications/Utilities/System Profiler.app"};
Process proc = Runtime.getRuntime().exec(command);
int resultCode = proc.waitFor();
if (resultCode != 0) {
    throw new Exception("failed to open system profiler");
}

通过向用户打开应用程序,您无法处理任何结果。您需要使用命令行版本的“系统探查器”,它将结果打印回shell。 然后,您可以使用以下代码在Java中处理结果:

String[] command = {"/usr/sbin/system_profiler"}
String sendback = "";    
Process proc = Runtime.getRuntime().exec(command);
InputStream istr = proc.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(istr));
String str;
while ((str = br.readLine()) != null) {
    sendback = sendback + str;
}
int resultCode = proc.waitFor();
br.close();
if (resultCode != 0) {
    throw new Exception("failed to open system profiler");
}
在Java中,您可以以任何方式处理结果(将其写入文件或其他文件)

但是,如果您真的想将其写入文件(而不是在Java中使用),可以通过更改命令并将输出重定向到shell上的目标文件来实现:

/usr/sbin/system_profiler >/path/to/yourfile.txt