[原创] main函数args接收外部参数

1. 直接使用命令行执行java文件(源码在后面)

编译: 
javac -cp .:/localRepository/commons-cli/commons-cli/1.2/commons-cli-1.2.jar -d . TestA.java 
运行: 
java -cp .:/localRepository/commons-cli/commons-cli/1.2/commons-cli-1.2.jar com.test.TestA -n hh -l 88 -p

注:因为使用了依赖的jar包,所以不能简单的用 javac -d . TestA.java编译


TestA.java源码如下: 

package com.test;

import org.apache.commons.cli.*;

import java.util.Arrays;

public class TestA {

    public static void main(String[] args) throws ParseException {
        System.out.println("执行主函数 ");
        for (String s : args) {
            System.out.println("接收到主函数参数 " + s);
        }

        Option option = new Option("n", "narg", true, "自定义命令行参数n");
        option.setRequired(false);
        Option option2 = new Option("l", "lkg", true, "自定义命令行参数l");
        option2.setRequired(true);
        Option option3 = new Option("p", "ptl", false, "自定义命令行参数p");
        option3.setRequired(false);

        Options options = new Options();
        options.addOption(option);
        options.addOption(option2);
        options.addOption(option3);

        PosixParser parser = new PosixParser();
        CommandLine commandLine = parser.parse(options, args);

        //是否输入了参数 -n
        boolean n = commandLine.hasOption("n");
        System.out.println(n);

        //遍历
        Arrays.stream(commandLine.getOptions()).forEach(System.out::println);

        //打印帮助(一般用h,无所谓了)
        if (commandLine.hasOption("p")){
            HelpFormatter hf = new HelpFormatter();
            hf.printHelp("测试主函数参数程序", options, true);
        }
    }

}

 

控制台打印效果如下:

[原创] main函数args接收外部参数_第1张图片

 

 

你可能感兴趣的:(学习)