2013-07-17 161 views
0

我的操作系统是Fedora和我使用下面的代码创建一个文件:File.createNewFile()给出产生java.io.IOException:权限被拒绝

String destFile = "/var/www/html/nykkos/app/webroot/AssimilatorGenerator/Script_May6/db/"+"musics.db"; 
File destinationFile= new File(destFile); 
if(!destinationFile.exists()) { 
destinationFile.createNewFile(); 
} 

它给了我在该行下面的异常destinationFile.createNewFile()

java.io.IOException: Permission denied 

为什么会发生这种异常,我该如何克服这种情况?

回答

1

这可能是因为您正在运行JVM的用户没有正确的权限来写入该路径。但请张贴更多的信息来获得更好的答案。

1

您必须检查owner模式和permission设置父目录设置。如果您的操作系统中没有write权限,您将会得到该例外。

2

sudo chmod a+rwx /var/www/html/nykkos/app/webroot/AssimilatorGenerator/Script_May6/db全部的权限更改为目录。最好先看看是否chown,更改所有者/组可能会这样做。或者是同一个团体的组合,并赋予团体所有权利。

顺便说一句createNewFile很少需要。

+0

当我运行这个java代码时,它可以在eclipse中完美工作。但是当我从Apache运行这个时,我得到了这个异常。这与权限有关吗? – user264953

+1

'ls -al'列出所有者,组和其他人拥有'owner:group'和rwx-rights的所有文件。在目录中至少需要rw权限,对于“Apache”/正在运行的java进程。 **也许有人读这可能会给出更明确的答案。** –