【问题标题】:How do I allow java to have permission to read and write to files on macOS?如何允许 java 有权读取和写入 macOS 上的文件?
【发布时间】:2019-09-21 00:01:00
【问题描述】:

我正在使用 java 测试一些新代码,并且正在尝试创建一个新的文本文件。但是,当我运行它时,我得到一个“Permission Denied”错误。

我的所有用户都设置了读写权限,我浏览了所有文件夹并使用“chmod 777 /path_name”将它们设置为读写

public class xplrCSV {
     public static void main(String[] args) throws IOException {
        File f = new File(File.separator + "MOCK_DATA1.txt");
        f.createNewFile();//Line 19  
    }  
}

我希望这段代码可以创建一个新文件,但是我得到的错误是:

Exception in thread "main" java.io.IOException: Permission denied
    at java.io.UnixFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(File.java:1012)
    at xplrCSV.main(xplrCSV.java:19)

【问题讨论】:

  • 为什么还要写入根文件夹?
  • 我假设您没有将所有文件夹都设置为此权限。

标签: java macos csv


【解决方案1】:

您需要使用有权在请求目录中写入/读取文件的用户运行 java 应用程序。

出于安全原因,您不能更改当前用户用于运行 JVM 的文件的读/写权限。

检查您是否有权访问该文件。如果是,则该文件可能已经存在并且已被另一个锁定它的进程或应用程序打开。

【讨论】:

  • 如果是777权限,为什么用户还重要?我认为问题在于代码中的路径错误
  • 我应该在代码中的什么位置更改文件路径,我应该在哪里设置路径才能访问它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-04
  • 2011-05-07
  • 2021-08-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多