分享

Java获取Jar包路径

 9loong 2010-06-03
 
Java获取Jar包路径
2010年01月09日 星期六 17:09
 

public class JarUtil
{
    private String jarName;
    private String jarPath;
        
    public JarUtil(Class clazz)
    {
        String path = clazz.getProtectionDomain().getCodeSource().getLocation()
                .getFile();
        try
        {
            path = java.net.URLDecoder.decode(path, "UTF-8");
        }
        catch (java.io.UnsupportedEncodingException e)
        {
            e.printStackTrace();
        }

        java.io.File jarFile = new java.io.File(path);
        this.jarName = jarFile.getName();

        java.io.File parent = jarFile.getParentFile();
        if (parent != null)
        {
            this.jarPath = parent.getAbsolutePath();
        }
    }

    /**
     * 获取Class类所在Jar包的名称
     *
     * @return Jar包名 (例如:C:\temp\demo.jar 则返回 demo.jar )
     */
    public String getJarName()
    {
        try
        {
            return java.net.URLDecoder.decode(this.jarName, "UTF-8");
        }
        catch (java.io.UnsupportedEncodingException e)
        {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 取得Class类所在的Jar包路径
     *
     * @return 返回一个路径 (例如:C:\temp\demo.jar 则返回 C:\temp )
     */

    public String getJarPath()
    {
        try
        {
            return java.net.URLDecoder.decode(this.jarPath, "UTF-8");
        }
        catch (java.io.UnsupportedEncodingException e)
        {
            e.printStackTrace();
        }
        return null;
    }

    public static void main(String[] args) throws Exception
    {
        JarUtil ju = new JarUtil(JarUtil.class);
        System.out.println("Jar name: " + ju.getJarName());
        System.out.println("Jar path: " + ju.getJarPath());
    }
}


(#)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多