我正在尝试制作一个简单的 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();
}
}
该程序不会抛出异常,并且编译和执行都很好,但是库文件夹根本不会取消隐藏。不管我重新格式化 cmd 字符串。以下格式均无效
String noHide = "chflags nohidden ~/Library";
String[] noHide = {"chflags", "nohidden","~/Library"};
String[] noHide = {"chflags"," " ,"nohidden"," ", "~/Library/"};
如果我删除它们会抛出异常的空格(好吧,不是字符串数组对象)。我可以从 osx 终端运行命令(chflags noHidden ~/Library)绝对没问题。有人知道为什么吗?