读取文件时在Java中获得权限被拒绝(Linux)

时间:2016-10-03 18:21:51

标签: java linux file permissions permission-denied

大家好,我最近搬到了 Ubuntu 来处理一个项目。 我必须简单地从文件中读取,使用:

File root = new File(fileroot); File sourceFile = new File(root,filename);

但是当我运行应用程序时,我得到: error: error reading FilePath; FilePath (Permession denied).

(FilePath是文件所在的路径,我为隐私目的隐藏了它)

我想这是操作系统的原因,因为在Windows上运行相同的代码并没有给我任何错误。有办法解决这个问题吗?我的意思是直接从Java获取这些权限或者使用命令从终端更改它们的方法吗?

提前感谢您的回答!

2 个答案:

答案 0 :(得分:1)

与消息说的一样,您可能没有权限读取该文件。要进行故障排除,您可以添加:

System.out.println(sourceFile.getAbsolutePath());

找到您尝试读取的文件的确切位置,然后检查文件系统的权限:

ls -la <path to your file>

确认您拥有r权限,否则这是您收到的错误。

答案 1 :(得分:0)

执行此操作的一种方法是导航到该文件并更改权限以允许每个用户读取该文件。 最简单的是通过终端:

chmod +r /path/to/file

要查看所有不同用途,请点击链接并了解chmod。 https://codex.wordpress.org/Changing_File_Permissions