java system.getenv(HOME) 返回 tomcat6 目录

标签 java variables ubuntu environment

你好,正如主题所读的那样

System.getenv("HOME")

在我的 Action 类(struts2)中并将其部署为 war

/var/lib/tomcat6/webapps/

当我上课时,getenv HOME 返回

/var/lib/tomcat6

谁能告诉我这是怎么回事?我什至在独立的 java 类上对其进行了测试。返回正确的 home 值。在 shell 上也尝试过 echo $HOME 并且它提供了正确的输出。

在 Ubuntu 10.04 上运行。

最佳答案

i THINK ive got what the problem is.. My project got deployed with permissions for "tomcat6 tomcat6" so when i getenv HOME, it gives me tomcat home. Am I right?

没有。

问题是您的 tomcat6 服务配置为以“tomcat”用户身份运行。 (通常在 init.d/tomcatd 脚本中有一个变量可以执行此操作...)出于安全原因这样做。除非您进行了适当的风险评估,否则不要更改它。

您真正需要做的是更改您的 Web 应用程序,使其不希望 $HOME 成为 >>您的<< 主目录。相反,创建一个特定于 webapp 的属性文件,该文件提供此外部(对 tomcat)目录的位置。或者更好(也是最佳实践!)更改您的应用程序,使其根本不需要引用外部目录。

关于java system.getenv(HOME) 返回 tomcat6 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6400747/

相关文章:

java.lang.String 无法转换为 org.json.simple.JSONObject simple-json

java - Android 应用程序在重新启动前崩溃

java - Java 的 WCF 通讯器是什么?

javascript - 试图避免 javascript eval()

javascript - 停止动态生成的setInterval

java - JVM 在堆和缓冲池之外泄漏内存

python - Py.test 收集阶段需要很长时间

ubuntu - Cytoscape 3.7.2 在 Ubuntu 19.10 中不起作用

macos - ssh:连接到主机 x.x.x.x 端口 22:操作超时

javascript - 在对象中添加数据时 undefined variable