如何在Java程序中更改当前工作目录?我已经找到的关于该问题的所有信息都声称你根本做不到,但我不敢相信确实如此。
我有一段代码可以使用通常从其开始的目录中的硬编码相对文件路径打开文件,而我只想能够从其他Java程序中使用该代码而不必从内部启动特定目录。看来你应该可以拨打System.setProperty( "user.dir", "/path/to/dir" ),但据我所知,仅默默地拨打那条电话就行不通了。
System.setProperty( "user.dir", "/path/to/dir" )
我会理解,如果Java不允许你这样做,或者不是因为Java允许你获取当前的工作目录,甚至不允许你使用相对文件路径打开文件,…
在纯Java中,没有可靠的方法可以做到这一点。user.dir通过System.setProperty()或设置属性java -Duser.dir=...似乎会影响的后续创建Files,但不会影响FileOutputStreams。
user.dir
System.setProperty()
java -Duser.dir=...
Files
FileOutputStreams
的File(String parent, String child),如果你从你的文件路径单独建立你的目录路径,用户可以方便地交换构造可以提供帮助。
File(String parent, String child)
一种替代方法是设置脚本以从其他目录运行Java,或使用JNI本机代码,如下所示。
相关的Sun错误已于2008年关闭,原因是“无法修复”。