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

Java System.getProperty(“user.home”)是否等同于Paths.get(“~”).absolutePath?,java,nio,java.nio.file,Java,Nio,Java.nio.file,所谓等价,我指的是逻辑等价,而不是字符串比较。 例如,如果我使用Files.newbuffereder(path.get(“file.txt”、System.getProperty(“user.home”))和Files.newbuffereder(path.get(“~”).resolve(path.get(“file.txt”)),我会在Windows和其他系统上得到相同的文件吗?当然不会。波浪字符在shell中有特殊的含义。它指向HOME变量。在Java中~与任何其他文件名类似。此外,在W

所谓等价,我指的是逻辑等价,而不是字符串比较。
例如,如果我使用
Files.newbuffereder(path.get(“file.txt”、System.getProperty(“user.home”))
Files.newbuffereder(path.get(“~”).resolve(path.get(“file.txt”))
,我会在Windows和其他系统上得到相同的文件吗?

当然不会。波浪字符在shell中有特殊的含义。它指向
HOME
变量。在Java中
~
与任何其他文件名类似。此外,在Windows中,您不能将
~
用作等效的主目录。

否。只有shell才能理解
>。它不是文件系统中的有效路径组件。Windows上的“主页”非常主观。该副本应该会在这方面对您有所启发。