如何在JAVA中更改当前目录?

我正在编写一个java程序来读取其路径在设置xml文件中的文件。 并且路径不是绝对的,而是相对于xml文件。 那么我该如何将当前目录更改为xml文件的目录,然后使用相对文件路径打开文件?

您无法重新分配流程的默认工作目录 – 它是在JVM启动时提供给您的程序的,并且在程序的整个生命周期内都不会更改。

为了评估相对路径,从原始路径(XML文件),文件路径分隔符和相对路径构造绝对路径:

String xmlFilePath = "c:\\temp\\xml\\my_file.xml"; String relativePath = "..\\resources\\file.ico"; String resourcePath = "c:\\temp\\xml\\..\\resources\\file.ico"; 

Java会将类似的路径解释为"c:\\temp\\resources\\file.ico"

没有必要这样做,因为您可能有一些绝对Path并从中解析路径:

 Path basePath = ... Path resourcePath = basePath.resolve(relativePath);