我的 Java 应用程序在 Tomcat 上运行,我想在用户主目录(例如 "/home/USERNAME/"
)下创建文件。
方法 System.getProperty("user.home")
在 Windows 上运行良好,返回 "C:\users\USERNAME\"
。但在 Linux 上它返回 "/usr/share/tomcat7/"
,我的应用程序没有权限。我试过 System.getProperty("user.name")
并返回 "tomcat7"
。我做了一个解决方法,但我不满意。
那么,即使在任何操作系统和 Tomcat 上运行时,我如何获取用户主目录?谢谢。
最佳答案
这些属性即:user.* 与用于运行 tomcat 的用户相关。通常在 windows(本地开发工作站)上,我们使用登录用户来运行 tomcat。所以你得到了正确的值。(你认为正确的值)。但是在 linux 上,特别是在生产环境中,tomcats 始终使用受限用户帐户运行,该帐户通常被命名为“tomcat”本身。因此,当您点击 user.* 属性时,您将获得特定于为运行 tomcat 的用户设置的环境变量的值。发生在你身上的事情是应该的。您不应依赖这些属性来使用。
关于java - System.getProperty ("user.home") 在 Tomcat 上返回 "/usr/share/tomcat7/",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27251571/