当前位置: 首页 > 面试题库 >

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

魏鸿禧
2023-03-14
问题内容

如何在Java程序中更改当前工作目录?我已经找到的关于该问题的所有信息都声称你根本做不到,但我不敢相信确实如此。

我有一段代码可以使用通常从其开始的目录中的硬编码相对文件路径打开文件,而我只想能够从其他Java程序中使用该代码而不必从内部启动特定目录。看来你应该可以拨打System.setProperty( "user.dir", "/path/to/dir" ),但据我所知,仅默默地拨打那条电话就行不通了。

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


问题答案:

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

File(String parent, String child),如果你从你的文件路径单独建立你的目录路径,用户可以方便地交换构造可以提供帮助。

一种替代方法是设置脚本以从其他目录运行Java,或使用JNI本机代码,如下所示。

相关的Sun错误已于2008年关闭,原因是“无法修复”。



 类似资料:
  • 问题内容: 我想用Go 实现命令: 但是当我在shell中运行时,它仍然不会切换到我的主目录。 那么如何通过运行go文件在shell中更改我的工作目录? 问题答案: 你做不到 每个子进程都有从父进程继承的自己的工作目录。在这种情况下,您将从其父级(您的shell)获取其工作目录。子进程无法更改父进程的目录或任何其他状态。 这是基本的过程分离。允许子进程影响其父进程将遇到各种安全性和可用性问题。 外

  • 问题内容: 我需要从java项目中一个软件包中的一个函数中执行一个.exe文件。现在,工作目录是Java项目的根目录,但.exe文件位于项目的子目录中。这是项目的组织方式: 最初,我尝试直接通过以下方式运行.exe文件: 但是问题是外部.exe需要访问其自己目录中的某些文件,并一直认为根目录是其目录。我什至尝试使用.bat文件来解决问题,但是出现了同样的问题: .bat文件与.exe文件位于同一目

  • 问题内容: 我想使用以下命令访问我当前的工作目录 输出: 我的输出不正确,因为C驱动器不是我的当前目录。在这方面需要帮助。 问题答案: 这将从您的应用程序初始化位置打印出完整的绝对路径。

  • 问题内容: 最近,在使用PyCharm时,我无法在代码中使用相对路径。例如,一个简单的将不起作用- 因此,我确定该文件与正在运行的py文件位于同一级别。PyCharm将返回此错误。 FileNotFoundError:[错误2]没有这样的文件或目录: 在StackOverflow上在线阅读答案后,我尝试了多种选择,包括: 更改为 关闭项目,删除.idea文件夹,使用代码打开该文件夹。 重新安装以及

  • 问题内容: 我想使用Java访问我当前的工作目录。 我的代码: 输出: 我的输出不正确,因为C驱动器不是我的当前目录。 如何获得当前目录? 问题答案: 代码: 这将打印从中初始化您的应用程序的当前目录的绝对路径。 说明: 从文档中: 软件包使用当前用户目录解析相对路径名。当前目录表示为系统属性,也就是从其中调用JVM的目录。

  • 问题内容: 是用于更改工作目录的shell命令。 如何在Python中更改当前的工作目录? 问题答案: 你可以使用以下命令更改工作目录: 使用此方法时,有两个最佳实践: 在无效路径上捕获异常(WindowsError,OSError)。如果抛出异常,请不要执行任何递归操作,尤其是破坏性操作。它们将沿旧路径而不是新路径运行。 完成后,返回到旧目录。可以通过将chdir调用包装在上下文管理器中以异常安