【问题标题】:File.createNewFile() gives java.io.IOException: Permission deniedFile.createNewFile() 给出 java.io.IOException: Permission denied
【发布时间】:2013-07-17 09:46:34
【问题描述】:

我的操作系统是 fedora,我使用以下代码创建文件:

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

为什么会出现此异常,我该如何克服?

【问题讨论】:

    标签: java linux file


    【解决方案1】:

    sudo chmod a+rwx /var/www/html/nykkos/app/webroot/AssimilatorGenerator/Script_May6/dball 的权限更改为目录。最好先看看chown,更改所有者/组是否可行。或同一组的组合并赋予该组所有权利。

    顺便说一句,createNewFile 很少需要。

    【讨论】:

    • 当我运行这个 java 代码时,它在 eclipse 中完美运行。但是当我从 Apache 运行它时,我得到了这个异常。和权限有关系吗?
    • ls -al 列出所有具有 owner:group 和所有者、组和其他人的 rwx 权限的文件。对于“Apache”/正在运行的 java 进程,您至少需要目录中的 rw-rights。 也许读过这篇文章的人可能会给出更明确的答案。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-24
        • 1970-01-01
        • 1970-01-01
        • 2022-01-21
        • 2015-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多