java - 如何在 Tomcat 中获取应用程序路径(而不是从 Servlet 上下文)

标签 java tomcat netbeans tomcat7

我需要的很简单,但是这里发布的解决方案并不适用于我的具体情况。 似乎有可能得到 catalina.base然后按照 /webapps/<application_name> 猜测您的应用程序目录.

正如问题标题中已经指出的那样,我不在 Servlet 上下文中,而是在常规类(class)中。

我认为这在大多数情况下都适用于标准 Tomcat 安装。但是在 IDE 中,目录都是分开的(源代码、构建、catalina 基础等),它实际上不起作用。例如,在 NetBeans 中,catalina.base不是应用程序所在的位置。

我想要的是能够猜测应用程序目录,从而猜测它的日志文件子目录。因此,在我的本地环境 (NetBeans) 中,我有/webapps/App/logs,在其他任何地方我也会有/webapps/App/logs。

我似乎无法找到获取“whateverdir”的可靠方法。有什么想法吗?

最佳答案

试试这个:

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

关于java - 如何在 Tomcat 中获取应用程序路径(而不是从 Servlet 上下文),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20552687/

相关文章:

java - 比较具有不同精度级别的 Date 对象

java - 将 hazelcast 客户端连接到管理中心

java - 如何获得 try/catch 语句的正确输出?

jsp - 从 jsp 输出中去除空格

java - 使用 java Deflater/Inflater 和字典有什么问题

java - 在 Tomcat 6.0.26 中更改虚拟内存的位置,而不是如何更改

Spring Boot 使用配置文件启用/禁用嵌入式 tomcat

java - 如何处理 Java (EE) 中的冲突依赖项

java - Tomcat、Netbeans Mac OSX Lion

java - 数据库连接 ClassNotfoundException