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

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

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

    ……天天向上

    好的想法總是無窮無盡

    統計

    留言簿(1)

    閱讀排行榜

    評論排行榜

    java 應用程序讀取jar包外自定義配置文件及log4j日志配置文件

    今天忙了一下午,終于把這個讀取方法寫到了,當然引用網絡上的一個方法;其實同事也寫了一個讀取方法,但是感覺過于復雜。
    總結一個:主要分幾個步驟
    1、因為是讀取外部目錄的配置文件,因此不適用該方式:
    ResourceBundle rsb1 = ResourceBundle.getBundle("D:/WORK/XXXX/XXXXCount.properties");默認讀取與該類同路徑的配置文件;
    private static String proFileFoLog4j=Logger.getLogger(XXXXAuth.class);默認讀取jar包中的log4j日志配置文件;

    2、解決方法1:
    1)、重新加載Properties文件:
      Properties pro = new Properties();
      String path=getConf(proFileName);//獲取當前類所在的路徑,該方法請看下面。
            try {
             pro.load(new FileInputStream(path));
      } catch (FileNotFoundException e) {
       e.printStackTrace();
      } catch (IOException e) {
       e.printStackTrace();
      }
    2)、編寫一個獲取當前類路徑的方法,這里直接使用了網友已經寫好的代碼,直接運行,不用修改,省事!當然還有其它的獲取路徑的方法:
     // 其他方法的定義 //
     /**
      * *getAppPath需要一個當前程序使用的Java類的class屬性參數,它可以 返回打包過的
      * *Java可執行文件(jar,war)所處的系統目錄名或非打包Java程 序所處的目錄
      *
      * @param cls為Class類型
      *@return 返回值為該類所在的 Java程序運行的目錄
      */
     public static String getAppPath(Class cls) {
      ClassLoader loader = cls.getClassLoader();
      String clsName = cls.getName() + ".class";
      Package pack = cls.getPackage();
      String path = "";
      if (pack != null)
      {
       String packName = pack.getName();
       clsName = clsName.substring(packName.length() + 1);
       if (packName.indexOf(".") < 0)
        path = packName + "/";
       else {
        int start = 0, end = 0;
        end = packName.indexOf(".");
        while (end != -1) {
         path = path + packName.substring(start, end) + "/";
         start = end + 1;
         end = packName.indexOf(".", start);
        }
        path = path + packName.substring(start) + "/";
       }
      }
      java.net.URL url = loader.getResource(path + clsName);
      String realPath = url.getPath();
      int pos = realPath.indexOf("file:");
      if (pos > -1)
       realPath = realPath.substring(pos + 5);
      pos = realPath.indexOf(path + clsName);
      realPath = realPath.substring(0, pos - 5);
      if (realPath.endsWith("!"))
       realPath = realPath.substring(0, realPath.lastIndexOf("/"));
      return realPath;
     }// getAppPath定義 結束

    3)獲取完整的配置文件路徑名稱: String path=getConf.getAppPath(XXXXAuth.class)+proFileName;被第一步pro.load(new FileInputStream(path));調用即可獲取配置文件。
    4)通過getProperties(proFileFoRead).get("XXXXAUTH.ISENABLE").toString();獲取配置文件信息即可。

    2、解決方法2:
    關于log4j引用外部文件夾的log4j.properties文件,有一種最簡單的方法:直接在main函數中加入如下一句:
    PropertyConfigurator.configure(getConf(proFileFoLog4j)); //設置log4j配置文件的路徑
    其中getConf()方法調用了上面的獲取完整路徑的方法,即可。




    posted on 2012-05-17 19:10 japper 閱讀(9065) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 日韩精品视频免费在线观看| 国产精品免费看久久久| 成人午夜18免费看| 亚洲丰满熟女一区二区v| 综合在线免费视频| 亚洲一区中文字幕在线观看| 成视频年人黄网站免费视频| ASS亚洲熟妇毛茸茸PICS| 成人黄页网站免费观看大全| 亚洲第一成年网站视频| 国产成人aaa在线视频免费观看| 青草久久精品亚洲综合专区| 国产伦精品一区二区三区免费迷| 激情小说亚洲色图| 亚洲综合色视频在线观看| a在线免费观看视频| 久久久久亚洲AV成人片| 久草视频在线免费| 激情小说亚洲色图| 亚洲va久久久噜噜噜久久| 91免费在线播放| 毛片亚洲AV无码精品国产午夜| 亚洲免费日韩无码系列| 日本视频在线观看永久免费| 亚洲色欲色欲www| 亚洲国产电影av在线网址| 久久精品视频免费| 亚洲一级免费视频| 亚洲Av无码乱码在线znlu| 中文字幕一区二区三区免费视频 | 亚洲情侣偷拍精品| 四虎影视成人永久免费观看视频 | 亚洲性无码一区二区三区| 亚洲精品国产精品国自产观看| 13小箩利洗澡无码视频网站免费| 亚洲91精品麻豆国产系列在线| 亚洲免费视频一区二区三区| 免费观看黄色的网站| 无码的免费不卡毛片视频| 亚洲精品永久www忘忧草| 一本色道久久88亚洲综合|