如何在java中设置umask?
我是Java的新手。 api中umask暴露在哪里?
你不能直接使用umask,因为Java是一个抽象,而umask是特定于POSIX的实现。 但是你有以下API:
File f; f.setExecutable(true); f.setReadable(false); f.setWritable(true);
还有一些API可用, 请查看文档 。
如果你必须直接访问umask,可以通过JNI和chmod()
系统调用来实现,或者使用exec("chmod")
生成一个新进程。
Java SE 7中的java.nio.file.attribute.PosixFileAttributes
。
另一种方法是使用暴露POSIX系统调用的第三方Java库; 例如
- Jtux
- “Posix for Java”库,
- 等等(Google为“java posix library”)。
这种方法的问题在于它本质上是不可移植的(不能在非POSIX兼容平台上工作),并且需要特定于平台的本机库……以及所需的全部内容。