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

标签 java macos

我是 macOS 新手。我在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

关于java - 将mac os终端的内容写入java中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7595933/

相关文章:

java - 在 DWR 方法调用中传递 javascript 对象

java - 使用java更改excel日期重新

java - C#/Java 压缩 JPG 图像

macos - 错误:/usr/local/Cellar/sqoop/1. 4.6/../hadoop不存在!请将 $HADOOP_COMMON_HOME 设置为 Hadoop 安装的根目录

bash - 如何确保 Mongo 二进制文件在我的 PATH 中 - 在 Mac 上的 shell rc (~/.bashrc) 中

java - 线程和同步

java - 读取文件上传中的多行

linux - 链接到模块文件夹提供了未定义的引用

python - 在 matplotlib 中,为什么用细线绘图会更快?

iphone - 要下载哪个 iPhone SDK?