Я уже некоторое время получаю сообщение об ошибке "Слишком много аргументов" и не могу понять, что делать.
Формат, который мне нужно принять в командной строке:
httpc (get|post) [-v] (-h "k:v")* [-d inline-data] [-f file] URL
Если пользователь вводит httpc get, тогда он может выбрать -v, определенные заголовки с -h и URL-адрес, если пользователь вводит httpc-сообщение, тогда он может выбрать -v, конкретные заголовки с -h, -d или -f и URL.
Я провел некоторое исследование и выяснил, что мне нужен анализатор командной строки, поэтому я выбрал args4j .Вот как я объявляю все переменные:
@Argument (required = false, index = 0, usage = "Protocol Type - get|post")
private String prtclType;
@Option (name = "-v", usage = "Verbose Option - ON|OFF")
private Boolean verboseOpt;
@Option(name = "-h")
private Map <String, String> headerList = new <String, String> HashMap();
@Option(name = "-d", forbids = {"-f"})
private Map <String, String> inline = new <String, String> HashMap();
@Option(name = "-f", forbids={"-d"})
private File file;
@Option(name = "-o", usage = "To print the response to a text file")
private static File outputFile;
@Argument (required = false, index = 1, usage = "URL - Http://...")
private String myURL;
@Option (name = "-help", help = true, usage = "Help message")
private boolean helpMenu;
И затем я иду в Java Eclipse, в проекте, и я выбираю Выполнить -> Выполнить конфигурацию -> Аргументы , и я ввожу это:
httpc get 'http://httpbin.org/get?course=networking&assignment=1'
и я получаю ошибку "Слишком много аргументов" .Я думаю, что это может быть потому, что я не настроил анализатор команд для одновременного принятия нескольких опций?но я не мог найти способ сделать это.
Я с радостью оценю помощь, заранее спасибо!