【问题标题】:Java Code to Get path to installed Firefox on Mac OS x获取 Mac OS x 上已安装 Firefox 的路径的 Java 代码
【发布时间】: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

标签: java macos terminal


【解决方案1】:

您的循环中存在逻辑错误。应该是这样的:

String line = reader.readLine();
while (line != null) {
    System.out.println(line);
    line = reader.readLine();
}

不过,无论如何,Firefox 应该始终位于 /Applications 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多