My Java Application在Tomcat上运行,我想在用户主目录下创建文件(例如"/home/USERNAME/"
)。
方法System.getProperty("user.home")
在Windows上运行良好,返回"C:\users\USERNAME\"
。但是在Linux上,它返回"/usr/share/tomcat7/"
,我的应用程序没有获得许可。我已尝试System.getProperty("user.name")
,并返回"tomcat7"
。我做了一个解决方法,但我并不满意。
那么,即使在任何操作系统和Tomcat上运行,如何获取用户主目录?感谢。
答案 0 :(得分:8)
这些属性,即:user。*是相对于用于运行tomcat的用户。通常在Windows(本地开发工作站)上我们使用登录用户来运行tomcat。所以你得到了正确的值。(你认为正确的值)。但是在Linux上,特别是在制作环境中,tomcats总是使用受限制的用户帐户运行,该帐户通常被命名为“tomcat”。本身。因此,当你点击user。*属性时,你会获得特定于为tomcat运行的用户设置的环境变量的值。你发生的事情应该是正确的方式。您不应该依赖这些属性来使用。