<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自身的類,也可以是用戶自定義的類,或者是第三方開發(fā)包里的類。
        * 只要是在本程序中可以被加載的類,都可以定位到它的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。這個方法是本類最基礎(chǔ)的方法,供其它方法調(diào)用。
        */
       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 閱讀(2193) 評論(2)  編輯  收藏 所屬分類: JAVA

    FeedBack:
    # re: JAVA 中獲取文件的絕對路徑
    2012-10-18 22:22 | chloe
    如何調(diào)用呢  回復(fù)  更多評論
      
    # re: JAVA 中獲取文件的絕對路徑
    2012-10-18 22:31 | chloe
    測試成功了,傳遞Class對象就可以了,多謝~  回復(fù)  更多評論
      
    主站蜘蛛池模板: 1000部禁片黄的免费看| 久久国产乱子伦精品免费午夜| 特级无码毛片免费视频尤物| 国产gv天堂亚洲国产gv刚刚碰| 免费激情网站国产高清第一页| 亚洲成a人片在线观看久| 国产精品亚洲精品日韩电影| 国产精品冒白浆免费视频| 美女免费视频一区二区| 亚洲精品无码av天堂| kk4kk免费视频毛片| 亚洲另类激情综合偷自拍图| a国产成人免费视频| 久久精品国产亚洲AV无码麻豆| 成年人网站免费视频| 在线精品亚洲一区二区| 国产免费变态视频网址网站| 中美日韩在线网免费毛片视频| 亚洲女久久久噜噜噜熟女 | 亚洲欧美日韩久久精品| 暖暖在线日本免费中文| 黄色一级视频免费| 亚洲国产另类久久久精品小说| 99在线免费观看视频| 91嫩草亚洲精品| 国产成人免费福利网站| 黄视频在线观看免费| 亚洲男人电影天堂| 情侣视频精品免费的国产| 一个人看的免费高清视频日本| 久久99国产亚洲精品观看| 在线看片无码永久免费视频| 一级毛片成人免费看a| 亚洲色图国产精品| 国产极品粉嫩泬免费观看| 国产一级在线免费观看| 亚洲欧洲日产国产最新| 丁香亚洲综合五月天婷婷| 伊人久久免费视频| 免费亚洲视频在线观看| 亚洲国产精品免费视频|