java项目相对路径问题
2017-11-30 13:21
281 查看
1、背景
在做开发时,经常遇到这样的情形:
IDE、cmd、web容器,对于一个项目的主目录路径的获取方式总是不一样,而且跨os(如windows和linux)时更是如此,这样太影像编码了,因为总不能一个一个if
else吧 ~囧~。
那么有没有办法解决呢?
2、解决方案:看需求!
2.1、如果你是想拿到路径,那么 => 没有
(除非仅限制在linux或mac上),因为windows的会在最前面带个/,变成 /D://XXX
,
2.2、如果你是想获取对应的资源(如InputStream形式),那么是有的。
就是使用public InputStream Class.getResourcesAsStream(String path)接口,直接以InputStream的形式读出来。这个跨os、跨各种环境,通用的。
spring内部读取配置文件就是这么用的,可参见XmlBeanDefinitionReader#loadBeanDefinitions(EncodedResource),
通过PathMatchingResourcePatternResolver#getResources(String)打断点进去。
在做开发时,经常遇到这样的情形:
IDE、cmd、web容器,对于一个项目的主目录路径的获取方式总是不一样,而且跨os(如windows和linux)时更是如此,这样太影像编码了,因为总不能一个一个if
else吧 ~囧~。
那么有没有办法解决呢?
2、解决方案:看需求!
2.1、如果你是想拿到路径,那么 => 没有
(除非仅限制在linux或mac上),因为windows的会在最前面带个/,变成 /D://XXX
,
2.2、如果你是想获取对应的资源(如InputStream形式),那么是有的。
就是使用public InputStream Class.getResourcesAsStream(String path)接口,直接以InputStream的形式读出来。这个跨os、跨各种环境,通用的。
spring内部读取配置文件就是这么用的,可参见XmlBeanDefinitionReader#loadBeanDefinitions(EncodedResource),
通过PathMatchingResourcePatternResolver#getResources(String)打断点进去。
相关文章推荐
- java取得项目工程---获取文件的相对路径问题---getResource()和getResourceAsStream以及路径问题
- java在eclipse项目中读取文件时相对路径的问题
- java取得项目工程---获取文件的相对路径问题---getResource()和getResourceAsStream以及路径问题
- 关于java和web项目中的相对路径问题
- 关于java和web项目中的相对路径问题
- 关于java和web项目中的相对路径问题
- JavaWeb 项目中的绝对路径和相对路径问题
- JavaWeb 项目中的绝对路径和相对路径以及问题的解决方案
- (转)java项目的中绝对相对路径问题
- 关于java和web项目中的相对路径问题
- java(Web)中相对路径,绝对路径问题
- java(Web)中相对路径,绝对路径问题总结
- java中相对路径,绝对路径问题总结
- Java路径问题最终解决方案—可定位所有资源的相对路径寻址
- 用log4j解决java相对路径问题
- java(Web)中相对路径,绝对路径问题
- java(Web)中相对路径,绝对路径问题总结
- v在JAVA文件中获取该项目的相对路径
- java(Web)中相对路径,绝对路径问题
- Java路径问题最终解决方案—可定位所有资源的相对路径寻址