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

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

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

    ……天天向上

    好的想法總是無窮無盡

    統(tǒng)計(jì)

    留言簿(1)

    閱讀排行榜

    評論排行榜

    java 應(yīng)用程序讀取jar包外自定義配置文件及l(fā)og4j日志配置文件

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

    2、解決方法1:
    1)、重新加載Properties文件:
      Properties pro = new Properties();
      String path=getConf(proFileName);//獲取當(dāng)前類所在的路徑,該方法請看下面。
            try {
             pro.load(new FileInputStream(path));
      } catch (FileNotFoundException e) {
       e.printStackTrace();
      } catch (IOException e) {
       e.printStackTrace();
      }
    2)、編寫一個(gè)獲取當(dāng)前類路徑的方法,這里直接使用了網(wǎng)友已經(jīng)寫好的代碼,直接運(yùn)行,不用修改,省事!當(dāng)然還有其它的獲取路徑的方法:
     // 其他方法的定義 //
     /**
      * *getAppPath需要一個(gè)當(dāng)前程序使用的Java類的class屬性參數(shù),它可以 返回打包過的
      * *Java可執(zhí)行文件(jar,war)所處的系統(tǒng)目錄名或非打包Java程 序所處的目錄
      *
      * @param cls為Class類型
      *@return 返回值為該類所在的 Java程序運(yùn)行的目錄
      */
     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定義 結(jié)束

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

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




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

    主站蜘蛛池模板: 久久国产乱子精品免费女| 亚洲hairy多毛pics大全| 韩日电影在线播放免费版| 国产男女性潮高清免费网站 | 日韩一卡2卡3卡4卡新区亚洲| 亚洲婷婷国产精品电影人久久| 337P日本欧洲亚洲大胆艺术图| 亚洲国产一区国产亚洲| 亚洲高清在线播放| 中国一级毛片视频免费看| 国产成人麻豆亚洲综合无码精品| 四虎永久在线精品免费一区二区| 亚洲国产综合人成综合网站| 豆国产96在线|亚洲| 日本免费电影一区| 国产亚洲精品国产福利在线观看| 国产无限免费观看黄网站| 亚洲偷自拍拍综合网| 一级毛片大全免费播放| 亚洲人成电影网站国产精品 | 亚洲男女内射在线播放| 精品亚洲成a人在线观看| 日韩一区二区三区免费体验| 亚洲老熟女@TubeumTV| 一级有奶水毛片免费看| www国产亚洲精品久久久| 精品在线免费观看| 亚洲成AⅤ人影院在线观看| 亚洲精品欧美综合四区| 日本a级片免费看| 无人视频免费观看免费视频| 亚洲女人被黑人巨大进入| 国产精品视频全国免费观看| 亚洲精品高清一二区久久| 亚洲一本到无码av中文字幕 | 国产在线观看xxxx免费| 亚洲国产AV无码专区亚洲AV| 免费视频成人片在线观看| 亚洲午夜精品一区二区公牛电影院 | 国产精品亚洲综合五月天| 午夜寂寞在线一级观看免费|