Java - 获取ClassPath的路径和资源

一、说明

    ClassLoader 提供了两个方法用于取得装载的类路径和取得其中的资源:

        public URL getResource (String name);  //得到的一个URL对象来定位资源

        public InputStream getResourceAsStream (String name);  //取得该资源输入流的引用

    注意:这里name是资源相对于类的路径,即相对于"/"根路径下的位置


二、示例

    1、获取当前class文件所在位置的绝对路径

        代码:this.getClass().getResource("").getPath(); 

        结果:/D:/Works/JavaTest/PathTest/bin/com/xilen/test


    2、获取classpath的绝对路径

        代码:this.getClass().getResource("/").getPath();

        结果:/D:/JWorks/JavaTest/PathTest/bin/


    3、通过线程的方式获取classpath的绝对路径

        代码:Thread.currentThread().getContextClassLoader().getResource("").getPath();

        结果:/D:/Works/JavaTest/PathTest/bin/


    4、通过ClassLoader的静态方法获取classpath的绝对路径

        代码:ClassLoader.getSystemResource("").getPath();

        结果:/D:/Works/JavaTest/PathTest/bin/


    5、补充:得到Web应用程序的根目录的绝对路径

        代码:ServletActionContext.getServletContext().getRealPath(“/”);

        结果:/D:/Server/apache-tomcat-7.0.42/webapps/WebTest


三、注意

    1、getResource()和getResourceAsStream()是成对出现的

    2、经过ClassLoader获取的默认已经是根路径,不能再传入"/"参数

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值