Запустите файл .command после предоставления разрешений для macOS в Java - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь сгенерировать и выполнить файл .command в моей Java-программе на macOS.

Программа успешно генерирует файл, но проблема заключается в выполнении.

Runtime.getRuntime().exec("chmod a+x \"" + U.base + File.separator + "/Game/run.command\"");
Desktop.getDesktop().open(new File(U.base, "Game/run.command"));

Когда он запускается, он по-прежнему выдает всплывающее диалоговое окно:

Файл "run.command" не может быть выполнен, поскольку у вас нет соответствующих прав доступа.

Однако, когда я вручную запускаю команду "chmod a + x filepath" в терминале вручную, программа может выполнить файл.Я предполагаю, что это проблема с моим использованием «Runtime.getRuntime (). Exec ()»

Есть ли способ, как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

При запуске команды chmod в среде выполнения она, по-видимому, принимает кавычки (\ ") как часть пути. Когда я удалил кавычки с концов, это сработало.

0 голосов
/ 10 июня 2018

Возможно, вам также потребуется установить chmod 755.

chmod a+x добавит в файл биты exec, но не затронет другие биты.Например, файл может быть по-прежнему нечитаемым для others, а group.

chmod 755 всегда создаст файл с разрешением 755 независимо от того, какие были начальные права доступа.

Если это все еще не сделаноработать, было бы хорошо иметь исключение для анализа.

...