Развертывание и выполнение чего-либо с помощью Java в UNIX - PullRequest
5 голосов
/ 01 марта 2012

У меня есть процесс Java (демон), который работает.Этот процесс используется как услуга.С помощью этой службы я могу загрузить подписанный zip-архив с доверенного сервера.После распаковки ZIP-архива я хочу выполнить двоичный файл в папке «unpacked».

Проблема в том, что этот двоичный файл не является исполняемым (нет 'x' в его файловом режиме) ... Я знаю, что этоможно установить его с помощью Java, но я хочу общий способ.

У вас есть какие-либо идеи, как правильно выполнить развертывание?

(Да, это должна быть Java)

В основном я хочу восстановить биты режима файла Unix после распаковки архива ZIP.Есть ли Java Lib, который может это сделать?

Ответы [ 2 ]

3 голосов
/ 01 марта 2012

Вы можете легко вызвать команду chmod из вашего Java-приложения, чтобы добавить недостающий бит x.chmod стандартно для Unix как сам исполняемый бит (x).

Или вы можете сделать это прямо из Java .

Если вы хотитеисполняемый бит, который остается установленным при распаковке, однако, вам, вероятно, не следует использовать библиотеки распаковки Java.Попробуйте использовать команду Unix unzip для распаковки вашего архива - он поддерживает сохранение и восстановление битов режима файла Unix в течение достаточно долгого времени.Если у вашего поставщика Unix его нет, вы можете получить его из источника .

0 голосов
/ 01 марта 2012

Если вы упаковываете свои файлы с tar, а затем дополнительно сжимаете, он сохраняет ваши разрешения такими, какими они были до упаковки. Используйте --preserve-permissions при распаковке.

...