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

如何在JAVA中更改当前目录?,java,Java,我正在编写一个java程序来读取一个路径位于设置xml文件中的文件。路径不是绝对的,而是相对于xml文件的。那么,我应该如何将当前目录更改为xml文件的目录,然后使用相对文件路径打开文件?您不能重新分配进程的默认工作目录-它在JVM启动时提供给您的程序,并且在程序的整个生命周期内不会更改 要计算相对路径,请根据XML文件的原始路径、文件路径分隔符和相对路径构造绝对路径: String xmlFilePath = "c:\\temp\\xml\\my_file.xml"; String relat

我正在编写一个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 basePath = ...
Path resourcePath = basePath.resolve(relativePath);

可以显示代码吗?不能更改进程的默认工作目录。您应该能够更改XML库的相对目录,但如何更改取决于库。是什么阻止您将XML中找到的相对路径连接到XML路径?我只是认为这不是很优雅。到目前为止,这似乎是唯一的办法@fxm