I use two boolean options. e.g. -c (compress) -e (encrypt) and one string option e.g. -o (outputFile) .
The i use parameter "1..*" FILE for inputFileNames(String[]).
Usage:
cmd -c -e -o OUTPUTFILE INPUTFILE1 INPUTFILE2 INPUTFILE3 -> work
cmd -ceo OUTPUTFILE INPUTFILE1 INPUTFILE2 INPUTFILE3 -> work
cmd -ce -o OUTPUTFILE INPUTFILE1 INPUTFILE2 INPUTFILE -> failed
will be parsed to:
outputFIle=null
inputFileNames[0]="-o"
inputFileNames[1]="OUTPUTFILE"
inputFileNames[2]="INPUTFILE1"
...
cmd -ce -o=OUTPUTFILE INPUTFILE1 INPUTFILE2 INPUTFILE -> failed
will be parsed to:
outputFIle=null
inputFileNames[0]="-o=OUTPUTFILE"
inputFileNames[1]="INPUTFILE1"
...