java - System.getProperty ("user.home") 在 Tomcat 上返回 "/usr/share/tomcat7/"

标签 java file tomcat getproperty

我的 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/

相关文章:

Java 线程可运行/可调用

java - Apache Beam 不会将文件写入本地环境或 Google Storage

java - 文件删除检测

java - 在Tomcat中执行shell命令

java - 在需要新的 API 版本之前,我可以对云端点(应用程序引擎)返回对象进行哪些更改? (以及如何做到的)

java - Grails 3中CustomID的自动递增

python - 如何在 Python 中向输出文件添加新列?

c++ - 图片会存储在 RAM 中吗?

java - HTTP 状态 500 - java.lang.ClassNotFoundException : org. apache.jsp.index_jsp

等待并行代码完成的java代码