2013-07-17 188 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進程。 **也許有人讀這可能會給出更明確的答案。** –