2013-12-12 27 views
0

我需要的是非常简单的,但这里发布的解决方案并不适用于我的具体情况。 看起来有可能得到catalina.base,并且从/webapps/<application_name>可以猜出你的应用程序目录。如何在Tomcat中获取应用程序路径(而不是从Servlet上下文)

正如问题标题中已经指出的,我不是在Servlet上下文中,而是在普通的类中。

我认为这在大多数情况下在标准的Tomcat安装中起作用。但是从一个IDE中,目录都是分开的(源代码,构建,catalina库等),它并不真正起作用。例如,在NetBeans中,catalina.base不在应用程序所在的位置。

我想要的是能够猜测应用程序目录以便猜测它的日志文件subdir。所以在我的本地环境(NetBeans)中,我有/ webapps/App/logs以及其他地方我也会有/ webapps/App/logs。

我似乎无法找到的东西是获取“whateverdir”的可靠方法。有任何想法吗?

+0

在侧面说明。除非您希望它们公开,否则我不会将您的日志放在应用程序下的目录中。 –

+0

我也不会。但是我必须这样做,因为它是这里的webapps的标准,我没有真正的发言权。 :( –

回答

1

试试这个:

  1. 定义加载在启动一个servlet。在其init()方法中,使用“catalina.base”方法来获取目录。
  2. 获取目录后,将该值保存在系统属性中。
  3. 然后在您的非servlet代码中,只需阅读系统属性即可。
+0

很酷的想法。会尝试!:) –

相关问题