Я новичок в Java. Где umask выставлен в api?
Как установить umask из java?
Ответ 1
Вы не можете играть с umask напрямую, так как Java является абстракцией, а umask - специфичной для POSIX-реализации. Но у вас есть следующий API:
File f;
f.setExecutable(true);
f.setReadable(false);
f.setWritable(true);
Доступно еще несколько API, проверить документы.
Если у вас должен быть прямой доступ к umask, либо делайте это через JNI, либо в syscall chmod()
, либо создайте новый процесс с помощью exec("chmod")
.
Ответ 2
java.nio.file.attribute.PosixFileAttributes
в Java SE 7.
Ответ 3
Другой подход заключается в использовании сторонней библиотеки Java, которая предоставляет системные вызовы POSIX; например.
- Jtux
- "Posix для Java" библиотека,
- и т.д. (Google для "java posix library" ).
Проблема с этим подходом заключается в том, что он по своей сути не переносимый (не будет работать на платформе, не совместимой с POSIX), и требует родную библиотеку, специфичную для платформы... и все, что влечет за собой.