首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否在Java中更改当前工作目录?

是否在Java中更改当前工作目录?
EN

Stack Overflow用户
提问于 2009-05-08 22:54:05
回答 10查看 235K关注 0票数 176

如何在Java程序中更改当前工作目录?我所能找到的关于这个问题的所有东西都声称你根本不能这样做,但我不敢相信这是真的。

我有一段代码,它使用通常启动文件的目录中的硬编码相对文件路径打开文件,我只希望能够在不同的Java程序中使用该代码,而不必从特定目录中启动它。看起来您应该能够调用System.setProperty( "user.dir", "/path/to/dir" ),但是据我所知,调用这条线路只是默默地失败,并且什么也不做。

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

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2009-05-08 14:59:29

在纯Java中没有可靠的方法可以做到这一点。

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

另一种方法是设置一个脚本从不同的目录运行Java,或者使用JNI本机代码as suggested below

The relevant Sun bug在2008年被关闭,因为“不会修复”。

票数 154
EN

Stack Overflow用户

发布于 2009-05-08 15:04:04

如果您使用ProcessBuilder运行您的遗留程序,您将能够指定它的工作directory

票数 42
EN

Stack Overflow用户

发布于 2011-11-21 04:45:07

可以更改PWD,使用JNA/JNI调用libc。JRuby人员有一个方便的java库,用于调用POSIX,名为jna-posix,这里是the maven info

您可以看到它使用here的示例(Clojure代码,对不起)。查看函数chdirToRoot

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/840190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档