Я пытаюсь создать простую java-программу, чтобы отобразить папку ~\Library\ на osx с помощью команд терминала. Насколько я исследовал код для запуска системных команд из 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/"};
Если я удаляю пробелы, они генерируют исключения (ну, а не объекты массива String). Я могу запустить команду (chflags noHidden ~/Library) абсолютно нормально с терминала osx. Кто-нибудь знает, почему?