web工程中java类获取webapp路径下的文件

本文介绍了一种在Java Web应用中获取WebAPP根目录的方法,通过获取类路径并进行字符串处理,最终定位到WebAPP的根目录,便于在应用中访问静态资源或进行文件操作。

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

第一步: 先获得classpath路径 
 

String classpath = this.getClass().getResource("/").getPath().replaceFirst("/", ""); 


这样子可以得到classpath路径,类似于: 

F:/projects/JavaStudyParent/study-springmvc-junit-test/target/springmvc-junit-test/WEB-INF/classes/ 

第二步、把WEB-INF/classes截取就能获得WebAPP目录啦: 

String webappRoot = classpath.replaceAll("WEB-INF/classes/", ""); 

得到的结果就是: 

F:/projects/JavaStudyParent/study-springmvc-junit-test/target/springmvc-junit-test/ 

通过这个路径你就能获取该文件夹下的所有文件啦

 

参考:https://endual.iteye.com/blog/2367318

代码示例:

 String classpath = this.getClass().getResource("/").getPath().replaceFirst("/", "");
 String webappRoot = classpath.replaceAll("WEB-INF/classes/", "");
 String fileName = webappRoot + "/static/file/temp.xlsx";
 File file = new File(fileName);

 

需要注意!!!

这里的操作只能在windows 下, 因为 第一步的replaceFirst("/", "");

windows下 的路径都是 磁盘开头,所以没问题。

但linux 下就不行了,还这样获取的话会出现:

出现异常java.io.FileNotFoundException: export/Packages/

 这是因为丢失export 前的 / ,所以去掉 replaceFirst("/", "");

转载于:https://my.oschina.net/zjllovecode/blog/2998203

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值