我需要的很简单,但是这里发布的解决方案并不适用于我的具体情况。
似乎有可能得到 catalina.base
然后按照 /webapps/<application_name>
猜测您的应用程序目录.
正如问题标题中已经指出的那样,我不在 Servlet 上下文中,而是在常规类(class)中。
我认为这在大多数情况下都适用于标准 Tomcat 安装。但是在 IDE 中,目录都是分开的(源代码、构建、catalina 基础等),它实际上不起作用。例如,在 NetBeans 中,catalina.base
不是应用程序所在的位置。
我想要的是能够猜测应用程序目录,从而猜测它的日志文件子目录。因此,在我的本地环境 (NetBeans) 中,我有/webapps/App/logs,在其他任何地方我也会有/webapps/App/logs。
我似乎无法找到获取“whateverdir”的可靠方法。有什么想法吗?
最佳答案
试试这个:
- 定义一个在启动时加载的 servlet。在其 init() 方法中使用“catalina.base”方法获取目录。
- 获取目录后,将值保存在系统属性中。
- 然后在您的非 servlet 代码中,只需读取系统属性。
关于java - 如何在 Tomcat 中获取应用程序路径(而不是从 Servlet 上下文),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20552687/