职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1325|回复: 0

一种比较可靠的获取类所在路径的方式

[复制链接]
jinchang 发表于 2011-9-26 10:21 | 显示全部楼层 |阅读模式
核心代码:
private static String LOCATION;
static {
    try {
        LOCATION = URLDecoder.decode([MainClass].class.getProtectionDomain()
                             .getCodeSource().getLocation().getFile(), "UTF-8");
    } catch (UnsupportedEncodingException e) {
        LOCATION = "";
    }
}
jdk eclipse 打开eclipse,新建类,假设类名为GiveMeClassPath。 将如上的核心代码拷贝到类中,引入依赖类:java.io.UnsupportedEncodingException和java.net.URLDecoder 编写main方法,打印LOCATION。 最终GiveMeClassPath代码如下——
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
public class GiveMeClassPath {
    private static String LOCATION;
    static {
        try {
            LOCATION = URLDecoder.decode(GiveMeClassPath.class.getProtectionDomain()
                                 .getCodeSource().getLocation().getFile(), "UTF-8");
        } catch (UnsupportedEncodingException e) {
            LOCATION = "";
        }
    }

    public static void main(String[] args) {
        System.out.println(LOCATION);
    }
} 执行结果:控制台打印类似“/F:/WorkSpace/Project/eclipse_SDK_361/SomeCode/bin/”的字符串。 注意事项所获取的路径是编译后的class文件所在路径,而非java源文件路径。 所获取的路径字符串首处有一个斜杠“/”,可利用substring方法截取。 也可使用jdk+notebook+cmd方式测试。 这一条注意事项是给百度经验的编辑人员看的——每一条经验都有它特定的读者,我这条经验的读者就是Java程序员,或者是具有一定Java基础的人,这样的人只要看到核心代码那部分就知道该怎样做了,除此之外的其他人我想根本不会有兴趣来阅读这条经验。现在我写了5个步骤,我想只要是个懂Java的人都会觉得我写的步骤很啰嗦,甚至有点把读者当白痴的嫌疑,我就不明白了,为什么你就觉得我这条经验还是缺乏可操作性,还需要再添加步骤呢?甚至还要我添加什么...图片?!
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-29 05:08 , Processed in 0.136692 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表