【问题标题】:Cannot access file in linux using java无法使用java访问linux中的文件
【发布时间】:2019-11-29 11:57:32
【问题描述】:

我想获取文件和文件夹的大小。所以我在java中使用File()类来获取文件属性。 它在 Windows 中对我来说很好用。使用相同的 File() 我无法在 Linux 中访问该文件。

Path root = Paths.get(System.getProperty("user.dir")).getFileSystem()
                                    .getRootDirectories().iterator().next();
logger.debug("root path: {}", root);
File filePath = new File(root + path)

root + path = "/" + logs

其中 logs 是 Linux 根目录中存在的文件夹

注意: 在这里,我想添加一些细节,将我的代码作为在 Linux 实例中使用 docker 容器部署的 Spring 应用程序运行

【问题讨论】:

  • 检查运行java 的用户是否拥有UNIX permissions 来访问此日志文件/文件夹。
  • 您已经在使用Path,为什么还要使用File

标签: java linux spring spring-boot unix


【解决方案1】:

我想也许你应该只使用Paths.get("/logs")

或者我不明白你的问题——如果它总是在 Linux 机器上运行,你为什么需要第一行?你打算在多个文件系统上运行这个应用程序吗?

【讨论】:

  • 感谢 Fionn 的回复。不要对第一行感到困惑,路径根变量将以字符串形式返回根 例如对于 windows:它将返回 C:/ 而对于 Linux,它只返回 "/" & 已经尝试过你的方式 "/logs"跨度>
猜你喜欢
  • 2013-05-30
  • 2014-10-05
  • 1970-01-01
  • 2011-12-03
  • 1970-01-01
  • 1970-01-01
  • 2020-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多