此代码有效:
public final class Foo{ private static final List<String> INPUTS = Arrays.asList( "/foo", "//foo", "foo/", "foo/bar", "foo/bar/../baz", "foo//bar" ); public static void main(final String... args) { Path path; for (final String input: INPUTS) { path = Paths.get("/", input).normalize(); System.out.printf("%s -> %sn", input, path); } }}输出:
/foo -> /foo//foo -> /foofoo/ -> /foofoo/bar -> /foo/barfoo/bar/../baz -> /foo/bazfoo//bar -> /foo/bar
注意,这不是便携式的。在Windows机器上将无法使用…
如果需要便携式解决方案,则可以使用memoryfilesystem,打开一个Unix文件系统并使用:
try ( final FileSystem fs = MemoryFileSystem.newLinux().build();) { // path operations here}


