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

Getting permission denied in Java when reading a file (Linux)

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

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

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

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

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

提前感谢您的回答!

如消息所述,您可能没有读取该文件的权限。要排除故障,您可以添加:

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

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

ls -la <path to your file>

确认您拥有 r 权限,否则将出现此错误。

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

chmod +r /path/to/file

要查看所有不同的用途,请遵循 link 并了解 chmod。 https://codex.wordpress.org/Changing_File_Permissions