如何为Tomcat servlet配置user.dir?

时间:2015-01-07 15:20:12

标签: java tomcat servlets

在我的Tomcat servlet中,我正在使用一个jar库来查找.properties中的某些System.getProperty("user.dir")文件。

问题在于,当我在不同的服务器上部署servlet时,"user.dir"是不同的。我希望他们是一样的。有没有办法配置这个目录,以便每个服务器都相同?

我也运行了catalina.sh version"user.dir"目录没有出现在输出中(包括CATALINA_BASECATALINA_HOME),这很奇怪。某些服务器会发生这种情况。在其他服务器上,"user.dir"匹配CATALINA_BASE

1 个答案:

答案 0 :(得分:5)

,你可以将该属性设置手动通过修改̶̶c̶a̶t̶a̶l̶i̶n̶a̶.̶s̶h̶̶并将其设置̶t̶h̶e̶r̶e̶.̶但是,这种方法将是非常̶c̶o̶m̶b̶e̶r̶s̶o̶m̶e̶因为你必须设置值的手动从此文件夹中的每个TOMCAT̶i̶n̶s̶t̶a̶l̶l̶a̶t̶i̶o̶n̶.̶< / p>

这里的段落错了。这是因为我天真地忘记"user.dir"属性是the working folder where Java was executed(示例显示为here)和you cannot change it not even with -D property when executing the JVM。如果要更改"user.dir"的值,则必须更改Java执行的文件夹以启动tomcat,这可能很容易或很难,具体取决于您的技能,我不建议将此方法用作溶液

A̶n̶o̶t̶h̶e̶r̶̶o̶p̶t̶i̶o̶n̶最好的选择是在ServletContextListener方法中定义contextInitialized并在那里设置一个新属性(以及作为特定文件夹的值)。然后,在任何servlet中,您应该恢复此属性。