【发布时间】:2016-10-03 18:21:50
【问题描述】:
大家好,我最近搬到 Ubuntu 从事一个项目。 我必须简单地从文件中读取,使用:
File root = new File(fileroot);
File sourceFile = new File(root,filename);
但是当我运行应用程序时,我得到:
error: error reading FilePath; FilePath (Permession denied).
(FilePath 是文件所在的路径,出于隐私考虑,我已将其隐藏)
我猜是操作系统引起的,因为在 Windows 上运行相同的代码不会给我任何错误。有没有办法解决这个问题?我的意思是一种直接从 Java 获取这些权限的方法,或者可能使用命令从终端更改它们?
提前感谢您的回答!
【问题讨论】:
-
您可以以有权打开该文件的用户身份运行该程序。示例
sudo java -jar myProg.jar. -
要研究的另一件事是这些文件是如何创建的。你看,在没有读取权限的情况下首先创建文件没有多大意义,迫使你稍后添加它们。因此,您可能正在查看系统上的 umask 设置;您处理的文件一开始就不是可读,这似乎很奇怪。所以,是的,这些答案可以帮助您修复这个问题;但您应该首先询问(并解决)“您为什么到达那里”。
标签: java linux file permissions permission-denied