Classpath 是什么

本文详细介绍了Java中classpath的概念及其与其他路径的区别,并通过具体的代码示例解释了如何使用不同方法获取资源路径。
classpath 是什么

classpath实际上就是编译后的 以 classes 文件夹为起点的路径

各种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

http://localhost:8080/webbasic/simple ServletContext.getResource("") 返回的是 jndi:/localhost/webbasic/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值