java获取tomcat服务器路径问题_如何通过Java代码获取tomcat服务器的绝对路径

有时候我们可能会有这样的需求:获取tomcat的绝对路径,以便于进行一些其他的操作,看过很多老哥的方式大多都类似于这种:

①:

Test.class.getResource("/")

②:

System.getProperty("user.dir")

上述两种方式的呢我先说第一种:第一种是获取Classpath的绝对路径。一般情况下是也可以间接获取到tomcat服务器的路径,但是有一种情况例外,当我们改变tomcat下面的配置文件server.xml的appBase地址时,情况就会发生变化。默认情况下为这个属性表示当我们启动Tomcat时加载tomcat下面的工程项目。这个我们可以自定义,比如我们改成appBase="D:\webapps",这样当启动服务器时便会加载我们定义目录下的工程项目。所以如果自定义了appBase属性值的Test.class.getResource("/") 虽然还是可以定位到classpath的路径,但是已经很tomcat的路径没有什么关联了。

第二种方式呢,表示获取用户的当前工作目录,web项目中默认情况获取的值为/tomcat_home/bin/,我在windows和centos中测试的都没有什么问题,但是在Redhat中测试的结果却不是这样的,尤其是在我改了appBase属性之后。偏偏我的项目又需要在Redhat操作系统中跑,所以这一种方式只有放弃了。

最后呢,经过我的苦苦寻找,终于让找到一种比较合适的方式:

System.getProperty("catalina.home")

能够帮你准确的定位到tomcat绝对路径。注意在在windows和*inux中路径分隔符不一样,在window是\,在*inux中是/,千万需要注意这点。网络上许多老哥说最好不要用第二种方式,不然很可能会出现一些致命的错误,我们这些后车之师就不要再次犯错了.

希望这篇文章能够帮助到大家,谢谢~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值