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

时间:2011-06-19 05:23:22

标签: java variables ubuntu environment

您好主题为

System.getenv("HOME")

在我的动作类(struts2)中并将其作为战争部署在

/var/lib/tomcat6/webapps/

当我上课时,getenv HOME返回

/var/lib/tomcat6

谁能告诉我发生了什么事?我甚至在一个独立的java类上测试它。恢复home的正确值。在shell上也尝试了它echo $HOME并且它提供了正确的输出。

在Ubuntu 10.04上运行。

1 个答案:

答案 0 :(得分:1)

  

我认为我得到的问题是什么..我的项目部署了“tomcat6 tomcat6”的权限所以当我getenv HOME时,它给了我tomcat回家。我对吗?

没有

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

您真正需要做的是更改您的网络应用程序,以便它不会指望$ HOME为>>您的<<主目录。而是创建一个特定于webapp的属性文件,该文件提供此外部(到tomcat)目录的位置。或者更好(和最佳实践!)更改您的应用程序,以便它根本不需要引用外部目录。