小编典典

更改 Java 中的当前工作目录?

all

如何从 Java 程序中更改当前工作目录?我能找到的关于这个问题的所有内容都声称你根本做不到,但我不敢相信情况确实如此。

我有一段代码使用硬编码的相对文件路径从通常启动的目录中打开文件,我只想能够在不同的 Java
程序中使用该代码,而不必从内部启动它一个特定的目录。似乎您应该可以调用System.setProperty( "user.dir", "/path/to/dir" ),但据我所知,调用该行只是默默地失败并且什么都不做。

如果Java不允许您这样做,我会理解,如果不是因为它允许您 获取 当前工作目录,甚至允许您使用相对文件路径打开文件......


阅读 107

收藏
2022-08-03

共1个答案

小编典典

在纯 Java 中没有可靠的方法来做到这一点。通过或设置user.dir属性似乎确实会影响
的后续创建,但不会影响。System.setProperty()``java -Duser.dir=...``Files``FileOutputStreams

File(String parent, String child)如果您将目录路径与文件路径分开构建,则构造函数可以提供帮助,从而更轻松地进行交换。

另一种方法是设置一个脚本以从不同的目录运行 Java,或者使用 JNI
本机代码,如下所示

相关的 OpenJDK 错误已于 2008
年关闭,因为“不会修复”。

2022-08-03