getResource的用法对于class和classloader

最近开始接触Java web项目,选择的服务器是tomcat。

获取资源文件(利用getResource方法进行总结)

package com.temp;

public class TestGetResourceAsStream {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(new TestGetResourceAsStream().getClass().getResource("/db.properties"));
		System.out.println(new TestGetResourceAsStream().getClass().getResource("")); 
		//System.out.println(Class.getResource("/"));
		System.out.println(new TestGetResourceAsStream().getClass().getClassLoader().getResource(""));
		System.out.println(new TestGetResourceAsStream().getClass().getClassLoader().getResource("db.properties"));
	}

}
打印 结果如下:

file:/D:/Myeclipse%20Example/Shop/build/classes/db.properties
file:/D:/Myeclipse%20Example/Shop/build/classes/com/temp/
file:/D:/Myeclipse%20Example/Shop/build/classes/
file:/D:/Myeclipse%20Example/Shop/build/classes/db.properties

同一个web 应用下另一clss

package com.Resource;


public class Classloader {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(new Classloader().getClass().getClassLoader().getResource(""));
		System.out.println(new Classloader().getClass().getClassLoader().getResource("db.properties"));
	
	}

}


web应用程序部署到tomcat中,tomcat会出现的目录

META-INF

WEB-INF

--classes  //编写*.java 编程成.class  WEB应用的package的顶层目录,也是所有.class的根目录“/”

--lib  库文件

iindex.jsp


总结:
   class.getResource()中 当要搜索的资源文件中出现“/”,表明是从classes目录下寻找,没有"/" 表明是从当前类所在包下寻找

  classloader.getResource()  表明直接从 .classes目录下寻找文件

  请记住一点就是你想获得文件,你得从最终生成的.class文件所在地为着手点,不要以.java文件的路径为出发点,因为所有的.java文件都要被翻译成.class  (只能从类加载器来加载文件,类加载器选择的目录是 jvm翻译出.class文件的默认存放地)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值