【问题标题】:Java "user.dir" property - what exactly does it mean?Java“user.dir”属性——它到底是什么意思?
【发布时间】:2013-04-26 14:40:06
【问题描述】:

我想使用user.dir dir 作为我的单元测试的基本目录(这会创建很多文件)。该属性指向当前工作目录是否正确(例如由'cd'命令设置)?

【问题讨论】:

  • stackoverflow.com/a/840229/3159183 中所述,请记住-Duser.dir 标志会影响File 对象(如果它们没有给出完整路径)但不会影响FileOutPutStream 对象。如果您想确保两者的默认目录匹配,您应该在启动 Java 之前cd

标签: java


【解决方案1】:

这是运行java 的目录,也是您启动JVM 的目录。不必位于用户的主目录中。它可以是用户有权运行 java 的任何地方。

因此,如果您将cd 转换为/somedir,然后运行您的程序,user.dir 将变为/somedir

另一个属性user.home 指的是用户目录。如/Users/myuser/home/myuserC:\Users\myuser

有关系统属性及其描述的列表,请参阅here

【讨论】:

  • 已更正。 user.dir 呢?
  • 发帖前已阅读。但“用户工作目录”并不是最好的解释,希望您同意。
  • 这是否意味着在所有java版本的tomcat配置中如果user.dir指向/usr/share/tomcat并且在配置中我们添加如下内容:file:./config那么它将指向/usr/share/tomcat/config总是?
【解决方案2】:

user.dir 是根据Java Tutorial, System Properties 的“用户工作目录”

【讨论】:

    【解决方案3】:

    通常这是您的应用程序 (java) 的启动目录(工作目录)。 “通常”,因为它可以更改,例如当您使用 Runtime.exec(String[] cmdarray, String[] envp, File dir) 运行应用程序时

    【讨论】:

    【解决方案4】:

    System.getProperty("user.dir")获取当前项目工作区的目录或路径

    【讨论】:

    • 它通常会获取当前的工作目录,就像你从 pwd 命令中得到的一样,但是如果你使用例如运行它看起来像mvn -f /path/to/project,在运行测试之前,maven 将在内部有效地 cd /path/to/project
    猜你喜欢
    • 2011-12-16
    • 1970-01-01
    • 2011-09-08
    • 2017-08-07
    • 2017-07-20
    • 2014-09-23
    • 2014-07-25
    • 2012-09-17
    • 1970-01-01
    相关资源
    最近更新 更多