Permission Denied:在Java中创建文件



在使用Mac在Eclipse中编译以下代码后:

    import java.io.*;
    public class Filer{
        public static void main(String[] args) throws IOException{
        File f1;
        f1 = new File("/System/file.txt");
        if(!f1.exists()){
            f1.createNewFile();
        }
      }
    }

我得到一个错误:

    Exception in thread "main" java.io.IOException: Permission denied
        at java.io.UnixFileSystem.createFileExclusively(Native Method)
        at java.io.File.createNewFile(File.java:883)
        at Filer.main(Filer.java:11)
有谁能告诉我为什么吗?有办法改变权限吗?如果我把它编译成。jar文件并发送给别人,那个人会有正确的权限吗?
有谁能告诉我为什么吗?

您的用户没有权限在该目录下创建文件。

是否有办法改变权限?

同样的方法你可以改变任何目录的权限。

Java 7+

Files.setPosixFilePermisions(f1.toPath(), 
    EnumSet.of(OWNER_READ, OWNER_WRITE, OWNER_EXECUTE, GROUP_READ, GROUP_EXECUTE));

如果我把它编译成一个。jar文件并发送给别人,那个人会有正确的权限吗?

我怀疑一个名为/System的目录的正确权限是你没有写权限。

是否有任何原因不使用主目录或当前工作目录?

仅允许具有特殊权限的用户在System目录中写入。

普通用户只能在他们的主目录下写

相关内容

  • 没有找到相关文章

最新更新