新建command命令行

如果在java项目中希望使用命令行来进行某些操作,可以仿照如下示例。


首先需要定义一系列的Options,如下我们定义了getOptions()方法   
  private static Options getOptions() {
        Options opts = new Options();
        opts.addOption(buildOption("b", "beanName", true, "bean in xml with configure", true));
        opts.addOption("a", "all", false, "if all or not, increment if this param escape");
        opts.addOption("n", "ignore", false, "get all when token file not exist or empty, " +
                "throw exception if this param escape and token file not exist or empty");
        opts.addOption("h", "help", false, "print help");
        return opts;
 }

//如上其实调用了Options.addOption(Option option); 和 Options.addOption(String opt, String longOpt, boolean hasArg, String description)两个方法

如下是API中的方法注释:   

/**
     * Add an option that contains a short-name and a long-name.
     * It may be specified as requiring an argument.
     *
     * @param opt Short single-character name of the option.
     * @param longOpt Long multi-character name of the option.
     * @param hasArg flag signally if an argument is required after this option
     * @param description Self-documenting description
     * @return the resulting Options instance
     */
    public Options addOption(String opt, String longOpt, boolean hasArg, String description)
    {
        addOption(new Option(opt, longOpt, hasArg, description));

        return this;
    }

同时,在类中定义了buildOption方法

    protected static Option buildOption(String opt, String longOpt, boolean hasArg, String description, boolean isRequired) {
        Option option = new Option(opt,longOpt,hasArg,description);
        option.setRequired(isRequired);
        return option;
    }

其实,也就是设置了option是required的。


在这之后,我调用了parseArgs(Options options, String[] args)方法来对输入的args命令解析,生成CommandLine实例

注意这里的parseArgs方法实际上是调用如下部分方法(绿底红字):

    private static final CommandLineParser parser = new PosixParser();

    public static CommandLine parseArgs(Options options, String []args) throws ParseException{
        return parser.parse(options, args);
    }


//这里才是真正的解析命令并执行操作的代码

public static void main(String[] args) {
        Options opts = getOptions();

        CommandLine commandline = null;
        try {
            commandline = parseArgs(opts, args);
        } catch (ParseException e) {
            printHelper(RoomImporterCommand.class.getSimpleName(), opts);
            return;
        }
       

     //根据commandline中的参数值,给方法中的某些标志位设置不同的值。  

        String beanName = commandline.getOptionValue('b');

     boolean allSign = false;
        if(commandline.hasOption('a')){
            allSign = true;
        }
        
        boolean ignore = false;
        if(commandline.hasOption('n')){
            ignore = true;
        }

       

      //根据上面生成的标志位的值,执行相关的操作,这里也就是实例化了一个classA,并调用了它的execute()方法。
       ClassA classA = new ClassA(beanName, allSign, ignore);
        
        System.exit(classA.execute());
    }

}


内容概要:本文系统介绍了标准化和软件知识产权的基础知识,涵盖标准化的基本概念、分类、标准代号、国际标准的采用原则及程度,重点讲解了信息技术标准化、ISO与IEC等国际标准化组织以及ISO9000和ISO/IEC15504等重要标准体系;在知识产权部分,详细阐述了知识产权的定义、分类及特点,重点分析了计算机软件著作权的主体、客体、权利内容、行使方式、保护期限及侵权认定,同时涉及商业秘密的构成与侵权形式、专利权的类型与申请条件,以及企业如何综合运用著作权、专利、商标和商业秘密等方式保护软件知识产权。; 适合人群:从事软件开发、项目管理、IT标准化或知识产权相关工作的技术人员与管理人员,以及备考相关资格考试的学习者;具备一定信息技术背景,希望系统掌握标准化与软件知识产权基础知识的专业人员。; 使用场景及目标:①帮助理解各类标准的分类体系及国际标准采用方式,提升标准化实践能力;②指导企业在软件研发过程中有效保护知识产权,规避法律风险;③为软件著作权登记、专利申请、技术保密等提供理论依据和操作指引。; 阅读建议:建议结合国家相关政策法规和实际案例进行深入学习,重点关注软件著作权与专利权的适用边界、标准制定流程及企业知识产权管理策略,强化理论与实践的结合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值