【java辅助类】如何获取普通类或者jar的路径?

本文介绍了一个用于定位Java项目中资源路径的工具类,包括如何从类路径中获取文件路径以及如何从已打包为jar的类中获取jar路径。详细解释了两种路径获取方法,并提供了实例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【前言】


在开发时候经常遇到的,那就是如何找到资源,如何定位资源?

通常项目里面的资源,譬如图片,会放在一般目录下面还有放在jar文件,两种放置方式的获取方法不一致。这两种获取路径方式--我个人的方式是以一个类作为基准,获取路径,

下面就是一个工具类了。



public class ClassHelper {

    /**
     * 根据某个类获取该类的路径,假如这个类已经被打包成为jar,那么将返回null,可以使用getJarPath来确定jar的路径。
     * */
    public static String getClassPath(Class clazz){

     try{
        return clazz.getClass().getResource("").toURI().getPath();
     }catch (Exception e){
         return null;
     }
    }
    /**
     * 根据某个被打包成为jar的类来获得jar的路径。
     * @param  clazz 作为基准的在jar里面的类。
     * @param Encoding 路径字符串解码的编码,如:utf-8.
     * */
    public static String getJarPath(Class clazz,String Encoding){
        try{
        return URLDecoder.decode(clazz.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(), Encoding);
        }
        catch (Exception e){
            return null;
        }
    }

    public static String getJarPath(Class clazz){

        return getJarPath(clazz,"utf-8");
    }



}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值