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

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

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

    posts - 431,  comments - 344,  trackbacks - 0
    CLI是Jakarta Commons中的一個子類。如果你僅僅只有一到兩個參數需要處理,那么使用它有點多余,但是,如果你需要從命令行中捕獲大多數應用程序的設置參數,那么使用CLI是恰到好處的。

    在使用CLI之前需要創建一個Options對象,該對象相當于一個容器,另外還有Option對象,每個Option對象相對于命令行中的一個參數。

       Options opts = new Options();

    通過利用這個Options,你可以使用addOption()方法定義你的應用程序可接受的命令行參數,每次都為一個option調用一次這個方法,看下面例示:

       opts.addOption("h", false, "Print help for this application");
       opts.addOption("u", true, "The username to use");
       opts.addOption("dsn", true, "The data source to use");


    當然你也可以單獨創建Option對線,然后使用addOption()方法添加進去。如下:

    Option op = new Option("h", false, "Print help for this application");

    一旦你定義了類的參數,創建一個CommandLineParser,并分析已傳送到主方法中的組。


       BasicParser parser = new BasicParser();
       CommandLine cl = parser.parse(opts, args);


    等到所有的參數都被解析以后,你可以開始檢查返回的命令行,這些命令行中,提供用戶的參數和值已被語法分析程序詳細檢查過了。

       if (cl.hasOption('h')) {
          HelpFormatter hf = new HelpFormatter();
          hf.printHelp("OptionsTip", opts);
       } else {
          System.out.println(cl.getOptionValue("u"));
          System.out.println(cl.getOptionValue("dsn"));
       }

    就象你看到的那樣,你可以使用HelpRormatter類為你的程序自動地產生使用信息。

    下面看一下全部的代碼:

    package com.founder.common;

    import org.apache.commons.cli.BasicParser;
    import org.apache.commons.cli.CommandLine;
    import org.apache.commons.cli.HelpFormatter;
    import org.apache.commons.cli.Options;
    import org.apache.commons.cli.ParseException;

    public class OptionsTip {

     public static void main(String[] args) {
      try {
       Options opts = new Options();
       opts.addOption("h", false, "Print help for this application");
       opts.addOption("u", true, "The username to use");
       opts.addOption("dsn", true, "The data source to use");
       BasicParser parser = new BasicParser();
       CommandLine cl = parser.parse(opts, args);
       
       if (cl.hasOption('h')) {
        HelpFormatter hf = new HelpFormatter();
        hf.printHelp("OptionsTip", opts);
       } else {
        System.out.println(cl.getOptionValue("u"));
        System.out.println(cl.getOptionValue("dsn"));
       }
      } catch (ParseException pe) {
       pe.printStackTrace();
      }

     }

    }

    注:使用此程序時候別忘了把commons-cli-1.0.jar加入到你的classpath中

    運行結果:

    E:\javaworkspace\collection\src>java com.founder.common.OptionsTip -h
    usage: OptionsTip
     -dsn    The data source to use
     -h      Print help for this application
     -u      The username to use

    E:\javaworkspace\collection\src>java com.founder.common.OptionsTip -u eric -dsn founder
    eric
    founder

    posted on 2008-04-16 17:31 周銳 閱讀(2262) 評論(0)  編輯  收藏 所屬分類: Apache
    主站蜘蛛池模板: 色播亚洲视频在线观看| 亚洲综合精品网站在线观看| 亚洲AV日韩AV高潮无码专区| 美女黄频a美女大全免费皮| 成人免费a级毛片无码网站入口 | 亚洲一卡2卡3卡4卡5卡6卡| 69天堂人成无码麻豆免费视频| 久久久久亚洲av无码专区导航| 国产一区二区三区免费| 亚洲AV无码乱码在线观看裸奔 | 最近免费中文字幕视频高清在线看| 亚洲日本国产精华液| 成人免费大片免费观看网站| 亚洲国产精品一区二区久| 成人无码区免费视频观看 | 国产大片免费天天看| 亚洲国产香蕉人人爽成AV片久久 | 亚洲宅男天堂a在线| 国产v精品成人免费视频400条| 国产做国产爱免费视频| 色天使亚洲综合一区二区| 亚洲高清免费在线观看| 久久精品免费一区二区喷潮| 日本a级片免费看| 亚洲熟妇无码八V在线播放| 国产成人综合久久精品亚洲| 亚洲欧洲国产视频| 亚洲永久网址在线观看| 亚洲免费福利在线视频| 久久精品国产亚洲av瑜伽| 久久免费国产精品| 精品国产污污免费网站aⅴ| 精品免费国产一区二区三区| 亚洲国产精品无码久久久久久曰| 亚洲人成色777777在线观看| 亚洲另类小说图片| 日韩毛片免费一二三| 18禁免费无码无遮挡不卡网站| 亚洲国产精品13p| 亚洲www在线观看| 免费h视频在线观看|