使用java从e​​clipse运行Mac OSX命令

时间:2012-08-13 17:40:48

标签: java macos command-line execute

我正在尝试创建一个简单的java程序,使用终端命令取消隐藏osx上的〜\ Library \文件夹。据我所知,从java运行系统命令的代码是     调用Runtime.getRuntime()EXEC(); 并在我查找的每个地方都列出。

但是,我的程序不起作用。主要方法如下。

public static void main(String[] args) throws IOException {

    String[] noHide = {"chflags"," " ,"nohidden"," ", "~/Library/"};
    try {
        Runtime.getRuntime().exec(noHide);
        System.out.println("library unhidden");
    } catch (Exception e ) {
        e.printStackTrace();
    }
}

此程序不会抛出任何异常,编译并执行正常,但Library文件夹根本不会取消隐藏。无论我重新格式化cmd String。下面没有任何格式可以使用

String noHide = "chflags nohidden ~/Library";
String[] noHide = {"chflags", "nohidden","~/Library"};
String[] noHide = {"chflags"," " ,"nohidden"," ", "~/Library/"};

如果我删除空格,它们会抛出异常(好吧,不是String数组对象)。我可以从osx终端运行命令(chflags noHidden~ / Library)。任何人都知道为什么?

1 个答案:

答案 0 :(得分:2)

您需要使用trycatch。但是,您的main应该是这样的:

public static void main(String[] args) {
    String[] noHide = {"chflags", "nohidden","~/Library"};
    try {
        Runtime.getRuntime().exec(noHide);
    } 
    catch (Exception e) {
        }
    }

基本上,您不需要throws IOException。这对我有用,所以如果它仍然无法在您的程序中运行,那么您可能会遇到更大的问题。