System.getProperty("user.home") 是否等同于 Paths.get("~").absolutePath?

Is System.getProperty("user.home") equivalent to Paths.get("~").absolutePath?

我所说的等价是指逻辑等价,而不是字符串比较。 例如。如果我做 Files.newBufferedReader(Paths.get("file.txt", System.getProperty("user.home"))Files.newBufferedReader(Paths.get("~").resolve(Paths.get("file.txt"))),我会在 Windows 和其他系统上得到相同的文件吗?

当然没有。波浪字符在 shell 中具有特殊含义。它指向 HOME 变量。在 Java 中,~ 与任何其他文件名一样。此外,在 Windows 中,您不能使用 ~ 作为主目录。