Commons CLI 入门

本文介绍如何利用Apache commons-cli库解析Java程序命令行参数。通过实例演示了如何定义选项、解析命令行输入并执行相应的操作。同时展示了错误处理及帮助信息的输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在写的程序 打成jar包之后,往其中输入参数,执行不同的函数,其中有Apache 有一个commons-cli 的包,可以实现这样的功能。

maven库:

<dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>1.4</version>
</dependency>
package com.eastcom.first.spark.data.option;

import java.util.logging.Level;
import java.util.logging.Logger;

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

public class Cli {

	private static final Logger log = Logger.getLogger(Cli.class.getName());
	private static Options options = new Options();
	private static String[] args = { "-h", "-v", "hello,world" };

	public static void main(String[] args) throws ParseException {
		// 定义阶段
		options.addOption("h", "help", false, "show help.");
		options.addOption("v", "var", true, "Here you can set parameter .");

		// 解析阶段
		CommandLineParser parser = new BasicParser();
		CommandLine cmd = null;
		try {

			// 获取参数值,应用程序交互阶段。应用程序启动。
			cmd = parser.parse(options, args);
			if (cmd.hasOption("h"))
				help();

			if (cmd.hasOption("v")) {
				// cmd.getOptionValue("v") 获得v传入的参数值。
				log.log(Level.INFO, "Using cli argument -v=" + cmd.getOptionValue("v"));
				// Whatever you want to do with the setting goes here
			} else {
				log.log(Level.SEVERE, "MIssing v option");
				help();
			}
		} catch (ParseException e) {
			log.log(Level.SEVERE, "Failed to parse comand line properties", e);
			help();
		}

	}

	private static void help() {
		// This prints out some help
		HelpFormatter formater = new HelpFormatter();
		formater.printHelp("Main", options);
		System.exit(0);
	}

}

输入参数:

private static String[] args = { "-h", "-v", "hello,world" };

运行结果:

十月 31, 2017 8:32:53 下午 com.eastcom.first.spark.data.option.Cli main
严重: MIssing v option
usage: Main
 -h,--help        show help.
 -v,--var <arg>   Here you can set parameter .

输入参数: 

	String[] args1 = { "-v", "hello,world" };

运行结果:
十月 31, 2017 8:38:35 下午 com.eastcom.first.spark.data.option.Cli main
信息: Using cli argument -v=hello,world

参考链接: https://segmentfault.com/a/1190000006795206






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值