macos从JAVA执行Unix系统命令的问题
我在从JAVA代码执行系统命令时遇到了一个奇怪的问题
实际上,我想从我的JAVA应用程序中获取Mac OSX
系统信息
为此,我使用
Runtime.getRuntime().exec("system_profiler -detailLevel full");
这很好用。如果我打印输出,这很酷。
但我想把这些信息写入plist
文件,以备将来使用。为此,我使用了^{
String cmd = "system_profiler -detailLevel full -xml > "+System.getProperty( "user.home" )+"/sysinfo.plist";
Process p = Runtime.getRuntime().exec(cmd);
基本上,这应该在当前用户主目录中创建一个plist文件
但这似乎没有写入任何文件
我错过什么了吗
# 1 楼答案
我的爪哇不仅生锈了,所以请温柔一点。;-)
Runtime.exec()
不会自动使用shell来执行您传递的命令,因此IO重定向没有任何作用如果你只是使用:
然后字符串将被标记为:
这也行不通,因为
-c
只需要一个参数试试这个:
当然,您也可以使用
Process.getInputStream()
读取Process
实例的输出,并将其写入所需的文件中;因此,完全跳过shell、IO重定向等