maven中classpath路径(转)
前几天看见一个大神总结classpath文章,觉得特别有用。所以,特此转载(http://my.oschina.net/GivingOnenessDestiny/blog/603505)
各种path获取到的路径的区别
Main.class.getResource(""); 得到的是当前class所在的路径
Main.class.getResourceAsStream(""); 是从当前路径查找资源资源
Main.class.getClassLoader.getResource("");得到的是当前类classloader加载类的起始位置
Main.class.getClassLoader.getResourceAsStream("");从classpath的起始位置查找资源
但是
Main.class.getResource("/"); 表示从classpath目录下找
也就是说 Main.class.getResource("/");
等价于 Main.class.getClassLoader.getResource("");
但是 Main.class.getClassLoader.getResourceAsStream("/"); 返回的是null
关于Servlet 资源路径
ServletContext.getRealPath("/") 返回的是 war 包展开后的从系统根目录到war展开地址的根路径,比如windows 就是 file:///d/path/to/war/
也就是上面做了两个动作, 先从 war 根目录找到资源, 然后返回资源完整路径
同样的 ServletContext.getResource("/") 返回的的是从war 根目录查找到的资源,只不过返回的是 URL ServletContext.getResourceAsStream("/") 返回的是和上面一样的 InputStream
但是 ServletContext.getResource("") 返回的是相对于URL的路径,相当于从当前URL根路径查找资源 ServletContext.getResourceAsStream("") 和上面一样,只不过返回InputStream
关于maven工程下springmvc资源路径配置
Java 源代码文件资源在Maven工程中的默认路径是: src/main/java,这个路径就是放置你的Java源代码文件。默认的路径是无需在Maven的pom.xml配置文件中指定的
资源文件的缺省路径为src/main/resources,这样Maven在打包成war文件的时候,会将src/main/resources的资源文件复制到class目录。
因此对于Spring mvc项目,servlet的配置文件springmvc-context.xml缺省会放置在 src/main/resources/springmvc-context.xml。
对应的的web.xml指定的<param-value>classpath:springmvc-context.xml</param-value> 中,servlet的配置文件springmvc-context.xml 需要从 class目录下查找。
最新文章
- 性能测试工具 wrk 安装与使用
- Android游戏开发实践(1)之NDK与JNI开发02
- 【android tools】内存、网络、界面性能响应优化的工具
- eclipse下环境变量设置:eclipse导入工程出现 Unbound classpath variable Error
- HTML输出 二 控制行背景颜色
- HDU 5700 区间交 线段树暴力
- php中的全局变量引用
- unix c 08
- 断开/删除 SVN 链接(.svn)的几种方法
- iosOC可变数组选择,冒泡排序
- WPF从我炫系列4---装饰控件的用法
- 仿:Android - 微信 - 朋友圈 - 小视频播放,多 4 句废话算我输
- WiFi其他方法和WiFi事件响
- 集群环境下的Session共享
- 在PL/SQL中调用Oracle存储过程
- Long类型参数传到前端精度丢失的解决方案
- spark常见异常汇总
- 沈阳润才教育CRM
- Nginx 防盗链配置
- java-信息安全(十五)-单向认证