Melhor forma de fazer parse de argumentos na linha de comando

Imagine a situação onde você executa o seu programa recebendo uma série de parametros na linha de comando, como por exemplo

java MeuPrograma -user usuariodeteste -nome Nome do Usuario -telefone 2222-2222 3333-3333 -all -opcao ver

Qual a melhor maneira de ler os parametros?

A principio a solução parace ser ler um argumento (arg[0] por exemplo), verificar qual o tipo e ler o argumento seguinte (arg[1]) no exemplo acima. Porém parametros que possuem valores com espaço invalidam essa técnica. Parametros que recebem um número variavel de argumentos também, assim como parametros sem argumento.

Implementei uma outra opção que concatena todos os argumentos depois extrai os parametros. Alguém tem alguma sugestão melhor ?

http://jakarta.apache.org/commons/cli/

Que tal?

Pois é, vi esse, me pareceu interessante.

Estou fazendo uns testes, depois publico os “sentimentos”