1

我的 Java 应用程序在 Tomcat 上运行,我想在用户主目录下创建文件(例如"/home/USERNAME/")。

方法System.getProperty("user.home")在 Windows 上运行良好,返回"C:\users\USERNAME\". 但在 Linux 上它返回"/usr/share/tomcat7/",我的应用程序没有权限。我试过System.getProperty("user.name")了,它返回了"tomcat7"。我做了一个解决方法,但我不满意。

那么,即使在任何操作系统和 Tomcat 上运行,我如何获取用户主目录?谢谢。

4

1 回答 1

9

这些属性,即:user.* 是相对于用于运行 tomcat 的用户而言的。通常在windows(本地开发工作站)上,我们使用登录用户来运行tomcat。所以你得到了正确的值。(你认为正确的值)。但是在 linux 上,特别是在生产环境中,tomcats 总是使用一个受限的用户帐户运行,该帐户通常被命名为“tomcat”本身。因此,当您点击 user.* 属性时,您将获得特定于环境变量的值,这些值是为运行 tomcat 的用户设置的。发生在你身上的事情应该是正确的。您不应该依赖这些属性来使用。

于 2014-12-02T14:20:52.773 回答