java web 获取当前的运行路径的方法

本文介绍了在Web开发中获取当前项目运行路径的多种方法,并针对不同环境下(如本地Jetty/Tomcat及Linux服务器上的Tomcat)的路径差异提供了转换方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     在web开发中,如果需要配置额外的xml属性文件。有时在本地运行正常,但是部署到liunx上配置文件会发生找不到等现象。

有可能是获取本地路径时异常。下面介绍几种获取当前项目运行路径的方法。

    1、URL url = T.class.getProtectionDomain().getCodeSource().getLocation(); 

    例如:

URL url = CrmBussinessCodeXmlResolver.class.getProtectionDomain().getCodeSource().getLocation();
  本地使用jetty启动获取到的路径是:file:/D:/workspace/bsm-server-njgd/target/classes/  

  使用本地tomcat启动路径:file:/E:/apache-tocmat2/webapps/bsm-server/WEB-INF/classes/

  放入服务器liunx的 tomcat仲的路径时:/home/app/tomcat/bsm-server/webapps/bsm-server/WEB-INF/classes/
 

    通过截取字段可以获取到响应的路径

               if (path.startsWith("zip")) {// 当class文件在war中时,此时返回zip:D:/...这样的路径
			path = path.substring(4);
		} else if (path.startsWith("file")) {// 当class文件在class文件中时,此时返回file:/D:/...这样的路径
			path = path.substring(6);
		} else if (path.startsWith("jar")) {// 当class文件在jar文件里面时,此时返回jar:file:/D:/...这样的径
			path = path.substring(10);
		}
		try {
			path = URLDecoder.decode(path, "UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值