Are there good Java libraries that facilitate building command-line applications?
As you're searching for a library that eases developing an interactive shell application, I'd suggest Cliche.
JLine looks helpful.
JLine is a Java library for handling console input. It is similar in functionality to BSD editline and GNU readline. People familiar with the readline/editline capabilities for modern shells (such as bash and tcsh) will find most of the command editing features of JLine to be familiar.
And it does list tab completion in its features.
I've used the Apache Commons CLI library for command-line argument parsing. It's fairly easy to use and has reasonably good documentation.
Which library you choose probably comes down to which style of options you prefer ("--gnu-style" or "-javac-style").