Tomcat 获取基本路径
发表于更新于
字数总计:512阅读时长:1分钟阅读量: 上海
最近公司有个需求,要求读 tomcat 中某 properties 文件信息,由于项目是部署到 windows 上的,由于项目的特殊性,会经常移到项目所以这个需求的最大突破点就如何动态获取 tomcat 目录的基础路径,在网上有很多方法比如 1.通过配置 tomcat 环境变量,从而在系统环境变量中获取 2.使用 system.getProperty()方法来获取
本文主要介绍第二种方法 system.getProperty(),这种方法 结合 catalina.base 使用
简单介绍一下 catalina.base
catalina.base
是 Tomcat 服务器的一个系统属性,它表示 Tomcat 实例的基本目录路径。当 Tomcat 服务器启动时,它会设置这个系统属性,指示当前 Tomcat 实例的基本路径。
- 在 Java 代码中,你可以使用
System.getProperty("catalina.base")
来获取该系统属性的值。这个值是一个字符串,表示 Tomcat 实例的基本目录路径。
- 当
catalina.base
系统属性可用时,意味着 Tomcat 服务器已经正确启动,并且该属性已设置为相应的值。这样,你就可以使用该属性来获取 Tomcat 实例的相关信息,如 Tomcat 的安装路径、配置文件路径等。
- 请注意,确保在获取
catalina.base
属性之前,Tomcat 服务器已经启动,并且 Java 代码在 Tomcat 服务器内部执行。否则,catalina.base
属性可能不可用或返回null
。
接下来请看实例操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| private JedisPool getJedisPool() { Properties properties = new Properties(); FileInputStream fis = null; JedisPool jedisPool=null; try { //指定tomcat路径 String catalinaBase = System.getProperty("catalina.base")+ "\\conf\\redis-data-cache.properties"; // 创建文件输入流 fis = new FileInputStream(catalinaBase); // 加载文件内容到Properties对象 properties.load(fis); // 读取属性值 String propertyValue = properties.getProperty("redis.hosts"); String[] serverDisposition= propertyValue.split(":"); JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxTotal(8); jedisPoolConfig.setMaxIdle(8); jedisPoolConfig.setMinIdle(0); jedisPool = new JedisPool(serverDisposition[0],Integer.parseInt(serverDisposition[1])); } catch (IOException e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } }
return jedisPool;
}
|