繁体   English   中英

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

[英]Running Mac OSX commands from eclipse using java

我正在尝试创建一个简单的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)。 任何人都知道为什么?

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

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

基本上,您不需要throws IOException 这对我有用,所以如果它仍然无法在您的程序中运行,那么设置某些内容的方式可能会出现更大的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM