picocli:java命令行程序框架
引入maven
<!-- https://picocli.info -->
<dependency>
<groupId>info.picocli</groupId>
<artifactId>picocli</artifactId>
<version>4.7.5</version>
</dependency>
使用方法
package com.rytools.cli.example;
import picocli.CommandLine;
import picocli.CommandLine.Command;
import picocli.CommandLine.Option;
import java.util.concurrent.Callable;
@Command(name = "login", version = "login 1.0", mixinStandardHelpOptions = true)
public class LoginCommand implements Callable {
@Option(names = {"-u", "--username"},
description = "User name",
interactive = true,
echo = true,
prompt = "username: ")
String userName = "";
@Option(names = {"-p", "--password"},
description = "Password",
interactive = true,
echo = false,
prompt = "password: ")
String password = "";
@Option(names = {"-c", "--connection-info"},
description = "Connection info",
interactive = true,
echo = true,
prompt = "connection url: ")
String info = "";
@Override
public Object call() throws Exception {
System.out.println(info);
return 0;
}
public static void main(String[] args) {
int exitCode = new CommandLine(new LoginCommand()).execute("-c 1234");
}
}