Я думаю, что на самом деле невозможно правильно сохранить разрешения.
Разрешения зависят от конкретной ОС: в то время как права доступа к файлу POSIX позволяют пользователю устанавливать, можете ли вы читать, записывать или выполнять файл для владельца файла, группы и других, файловая система NTFS имеет аналогичную систему, но концепция для разрешение на исполнение не существует. И ранняя файловая система FAT / FAT32 вообще не имеет прав доступа к файлам (часть атрибута только для чтения).
Будучи кроссплатформенным, для Java было бы трудно правильно установить разрешение для вновь создаваемых (разархивированных) файлов в зависимости от базовой ОС ....
Тем не менее, в Java 6 появился новый класс java.io.File , который позволяет вам устанавливать разрешения (с помощью таких методов, как setExecutable (), setReadable () и т. Д.)
Это мне очень помогло, особенно setExecutable (), который был моей главной заботой при необходимости разархивировать исполняемые файлы в файловой системе Linux. И вам не нужно беспокоиться о том, какую операционную систему вы используете, так как метод просто ничего не сделает, если работает под Windows или другими системами без концепции исполняемых файлов.