【发布时间】:2013-10-05 05:42:22
【问题描述】:
我需要在 Mac 上找到 Firefox 应用程序的安装目录,为此我运行终端命令:
find / -name Firefox.app 2>/dev/null
现在我需要在 java 程序中运行相同的命令,我的代码是:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class kill{
public static void main(String[] args) throws Exception{
String cmds[] = {"find","/","-name","Firefox.app"};
Process p = Runtime.getRuntime().exec(cmds);
p.waitFor();
//int exitVal = p.waitFor();
//System.out.println("Process exitValue:" + exitVal);
BufferedReader reader =
new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line = reader.readLine();
while (line != null) {
line = reader.readLine();
System.out.println(line);
}
}
}
但它并没有返回我的路径。谁能告诉我这里出了什么问题.. 任何帮助将不胜感激
【问题讨论】:
-
对于初学者来说,在整个虚拟文件系统上运行
find可能会非常慢。但是,如果您打算使用它,则需要发布命令行运行的输出,以及您可能从 Java 应用程序获得的任何stderr输出。 -
你为什么不在纯 Java 中使用 FileUtils#iterateFiles 之类的东西呢?
-
Chrylis :它不显示任何输出。当我取消注释它输出的进程退出值时: Process exitValue:127