<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,comments - 227,trackbacks - 0
    /**
        * 獲取一個類的class文件所在的絕對路徑。 這個類可以是JDK自身的類,也可以是用戶自定義的類,或者是第三方開發包里的類。
        * 只要是在本程序中可以被加載的類,都可以定位到它的class文件的絕對路徑。
        *
        * @param cls
        *            一個對象的Class屬性
        * @return 這個類的class文件位置的絕對路徑。 如果沒有這個類的定義,則返回null。
        */
       private String getPathFromClass(Class cls) throws IOException {
         String path = null;
         if (cls == null) {
           throw new NullPointerException();
         }
         URL url = getClassLocationURL(cls);
         if (url != null) {
           path = url.getPath();
           if ("jar".equalsIgnoreCase(url.getProtocol())) {
             try {
               path = new URL(path).getPath();
             }
             catch (MalformedURLException e) {
             }
             int location = path.indexOf("!/");
             if (location != -1) {
               path = path.substring(0, location);
             }
           }

           File file = new File(path.replaceAll("%20"," "));
           path = file.getCanonicalPath();
         }
         return path;
       }

       /**
        * 獲取類的class文件位置的URL。這個方法是本類最基礎的方法,供其它方法調用。
        */
       private URL getClassLocationURL(final Class cls) {
         if (cls == null) {
           throw new IllegalArgumentException("class that input is null");
         }
         URL result = null;
         final String clsAsResource = cls.getName().replace('.', '/').concat(".class");
         final ProtectionDomain pd = cls.getProtectionDomain();
         if (pd != null) {
           final CodeSource cs = pd.getCodeSource();
           if (cs != null) {
             result = cs.getLocation();

           }
           if (result != null) {
             if ("file".equals(result.getProtocol())) {
               try {
                 if (result.toExternalForm().endsWith(".jar")|| result.toExternalForm().endsWith(".zip")) {
                   result = new URL("jar:".concat(result.toExternalForm()).concat("!/").concat(clsAsResource));
                 }
                 else if (new File(result.getFile()).isDirectory()) {
                   result = new URL(result, clsAsResource);
                 }
               }
               catch (MalformedURLException ignore) {
               }
             }
           }
         }

         if (result == null) {
           final ClassLoader clsLoader = cls.getClassLoader();
           result = clsLoader != null ? clsLoader.getResource(clsAsResource): ClassLoader.getSystemResource(clsAsResource);
         }
         return result;
       }

    posted on 2011-05-27 13:05 SIMONE 閱讀(2202) 評論(2)  編輯  收藏 所屬分類: JAVA

    FeedBack:
    # re: JAVA 中獲取文件的絕對路徑
    2012-10-18 22:22 | chloe
    如何調用呢  回復  更多評論
      
    # re: JAVA 中獲取文件的絕對路徑
    2012-10-18 22:31 | chloe
    測試成功了,傳遞Class對象就可以了,多謝~  回復  更多評論
      
    主站蜘蛛池模板: 九九精品国产亚洲AV日韩| 国产精品亚洲午夜一区二区三区| 亚洲av成本人无码网站| 蜜桃视频在线观看免费网址入口| 久久亚洲AV无码精品色午夜麻豆| 热久久这里是精品6免费观看| 最新精品亚洲成a人在线观看| 一级片在线免费看| 亚洲色偷拍另类无码专区| 中文字幕免费在线看| 久久亚洲国产视频| 97av免费视频| 亚洲精品天堂在线观看| 97人伦色伦成人免费视频| 香蕉视频亚洲一级| 亚洲中文字幕日产乱码高清app| 岛国精品一区免费视频在线观看| 亚洲VA成无码人在线观看天堂| 外国成人网在线观看免费视频| 亚洲精品视频免费在线观看| 97无码免费人妻超级碰碰碰碰| 色视频在线观看免费| 亚洲无线码一区二区三区| 91精品国产免费网站| 亚洲综合精品伊人久久| 国产成人精品男人免费| 阿v视频免费在线观看| 亚洲av中文无码乱人伦在线r▽ | 亚洲美女大bbbbbbbbb| 免费看国产成年无码AV片| 国产AV无码专区亚洲AV琪琪| 日韩精品亚洲aⅴ在线影院| 在线免费观看国产| 真人无码作爱免费视频| 日本亚洲欧洲免费天堂午夜看片女人员 | 亚洲AV无码乱码国产麻豆| 成人无码区免费A片视频WWW| 日本高清不卡中文字幕免费| 亚洲视频在线观看| 免费人妻av无码专区| 1000部拍拍拍18勿入免费视频下载|