【问题标题】:How to represent a Linux path while running in a Windows machine?在 Windows 机器上运行时如何表示 Linux 路径?
【发布时间】:2021-12-12 23:47:11
【问题描述】:

我正在开发一个可以在 Windows 机器上运行但允许用户向 Linux 服务器发送命令的 Java 程序。其中一些命令允许用户指定与 Linux 兼容的路径,例如“/文件夹/file.txt”。

通常,我会使用Path 来验证和表示用户输入的路径。但是,由于程序在 Windows 上运行,JVM 将改为默认表示 Windows 路径,例如"C:\文件夹\file.txt"。

除了执行字符串操作,我如何在 Windows 机器上运行时用 Java 表示 Linux 类型的路径?有没有办法“强制”Path 类假装它在 Linux 上?

【问题讨论】:

  • 我会完全忽略PATH 变量,只使用应用程序附带的配置文件。指定要在该配置文件中使用的服务器端路径。
  • @markspace 这根本与 PATH 变量无关。我的问题是在 JVM 在 Windows 上运行时接受和验证代表 Linux 路径的用户输入。

标签: java path


【解决方案1】:

要以unix 格式表示win 路径,您可以执行以下操作:

String unix = StreamSupport.stream(Paths.get(win).spliterator(), false)
                  .map(Object::toString)
                  .collect(Collectors.joining("/", "/", ""));

这会将C:\\folder\\file.txt 转换为/folder/file.txt,但这有点小技巧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    • 2016-02-02
    相关资源
    最近更新 更多