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

时间:2011-09-29 10:27:05

标签: 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 (resultCode != 0) {
    throw new Exception("failed to open system profiler");
}

1 个答案:

答案 0 :(得分:1)

通过向用户开放应用程序,您无法处理任何结果。您需要使用命令行版本的“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