如何在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兼容平台上工作),并且需要特定于平台的本机库……以及所需的全部内容。