端末コマンドを使用して、osx の ~\Library\ フォルダーを再表示する単純な Java プログラムを作成しようとしています。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 noHide = "chflags nohidden ~/Library";
String[] noHide = {"chflags", "nohidden","~/Library"};
String[] noHide = {"chflags"," " ,"nohidden"," ", "~/Library/"};
スペースを削除すると、例外がスローされます (文字列配列オブジェクトではありません)。コマンド (chflags noHidden ~/Library) を osx ターミナルから問題なく実行できます。誰でも理由がわかりますか?