Я использую библиотеку cli-commons apache в своем классе, и мне нужна функциональность, позволяющая сделать одну опцию в качестве флага, я расскажу вам через пример, поэтому вот код
CLI. java
public boolean readCommandLineParameters(String[] args) {
Logger log = Logger.getLogger(CLIReader.class);
Options options = new Options();
Option serverurl = Option.builder("url").longOpt("server url").desc("RTC Server url").required().hasArg().argName("url").build();
options.addOption(serverurl);
Option userOpt = Option.builder("u").longOpt("user").desc("RTC User Name").hasArg().argName("user").required().build();
options.addOption(userOpt);
Option pwdOpt = Option.builder("p").longOpt("password").desc("RTC user password").hasArg().argName("password").required().build();
options.addOption(pwdOpt);
Option completeLoggerOpt = Option.builder("v").longOpt("completeLogger").desc("Complete Logger Info + Errors").build();
options.addOption(completeLoggerOpt);
try {
CommandLineParser parser = new DefaultParser();
CommandLine cmd = parser.parse(options, args, true);
user = cmd.getOptionValue("u");
password = cmd.getOptionValue("p");
serverurl = cmd.getOptionValue("s");
}
catch (Exception e) {
log.info(e.getMessage());
}
return false;
}
public String getUser() {
return user;
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @return the serverUrl
*/
public String getServerUrl() {
return serverUrl;
}
ab c. java (Не основной класс, фрагмент кода):
if(isLockedByMe)
{
//System.out.println("Do Nothing");
if(completeLoggerFlag.equals("-v"))
{
log.info("Success");
}
else if(completeLoggerFlag.equalsIgnoreCase(""))
{
log.info("Success as well");
}
else if(!completeLoggerFlag.equalsIgnoreCase("-v") || !completeLoggerFlag.equalsIgnoreCase(""))
{
log.error("Failed");
break;
}
}
Итак, здесь я собираюсь передать командную строку как: java -jar Ab c .jar -u стек -p flow@860 -url https://www.google.com -v, затем придет сообщение «Успех», и когда оно будет передано как java -jar Ab c .jar -u стек -p flow@860 -url https://www.google.com, затем придет сообщение «Успех также» и когда будет передано как java -jar Ab c .jar - u стек -p flow@860 -url https://www.google.com abbshcgs@34 \ тогда придет сообщение "Failed"
Так возможно ли это сделать? Ваша помощь будет по достоинству оценена, Заранее спасибо, будьте в безопасности!