代码之家  ›  专栏  ›  技术社区  ›  Basil Bourque

从Java控制台应用程序在MacOS Finder中公开文件

  •  1
  • Basil Bourque  · 技术社区  · 6 年前

    在上使用Java 10 macOS Sierra或High Sierra,使用Oracle JDK或 OpenJDK Zulu/Zing jvm,有没有一个控制台java应用程序可以 Finder 来到前台并公开特定现有文件的位置?

    1 回复  |  直到 6 年前
        1
  •  0
  •   MadProgrammer    6 年前

    出人意料的简单(当然,更简单的是在windows下尝试)。

    因此,经过一些初步研究,我偶然发现 Shell tricks: the OS X open command 这很重要,因为几乎所有的解决方案都建议使用。 open -a Finder {file\folder} ,这并不是我想要的(它会在finder的编辑器中打开文件(我使用文本文件进行测试))

    相反,建议使用 open -R {file/folder}

    下一个任务是想知道你是否可以打电话给 open 从java开始,我就认为我必须首先通过shell执行它,但结果证明这不是必需的。

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    
    public class Test {
    
        public static void main(String[] args) throws IOException, InterruptedException {
            String command[] = new String[]{"open", "-R", {your file or folder}};
            ProcessBuilder pb = new ProcessBuilder(command);
                   pb.inhertIO();
            pb.redirectErrorStream(true);
            Process p = pb.start();
            int exitCode = p.waitFor();
            System.out.println(exitCode);
        }
    
    }
    

    我在文件和文件夹中都测试了这个

    我也测试过 Desktop.getDesktop().browse 但没有和上面一样的结果(更像 open -a Finder {file/folder} )