import org.apache.commons.cli.*;
public class MyCLIApplication {
public static void main(String[] args) {
Options options = new Options();
Option input = new Option("i", "input", true, "input file path");
input.setRequired(true);
options.addOption(input);
Option output = new Option("o", "output", true, "output file path");
output.setRequired(true);
options.addOption(output);
CommandLineParser parser = new DefaultParser();
HelpFormatter formatter = new HelpFormatter();
CommandLine cmd;
try {
cmd = parser.parse(options, args);
} catch (ParseException e) {
System.out.println(e.getMessage());
formatter.printHelp("mycliapp", options);
System.exit(1);
return;
}
String inputFilePath = cmd.getOptionValue("input");
String outputFilePath = cmd.getOptionValue("output");
}
}
import picocli.CommandLine;
import picocli.CommandLine.Command;
import picocli.CommandLine.Option;
@Command(name = "mycliapp", mixinStandardHelpOptions = true, version = "1.0", description = "My CLI Application")
public class MyCLIApplication implements Runnable {
@Option(names = {"-i", "--input"}, required = true, description = "input file path")
private String inputFilePath;
@Option(names = {"-o", "--output"}, required = true, description = "output file path")
private String outputFilePath;
public static void main(String[] args) {
CommandLine.run(new MyCLIApplication(), args);
}
@Override
public void run() {
}
}
import com.beust.jcommander.JCommander;
import com.beust.jcommander.Parameter;
public class MyCLIApplication {
@Parameter(names = {"-i", "--input"}, required = true, description = "input file path")
private String inputFilePath;
@Parameter(names = {"-o", "--output"}, required = true, description = "output file path")
private String outputFilePath;
public static void main(String[] args) {
MyCLIApplication app = new MyCLIApplication();
JCommander commander = JCommander.newBuilder().addObject(app).build();
commander.parse(args);
}
}