This is similar to the goals of ACCUMULO-1496, but it should be possible to do it more efficiently with an annotation processor and Java's ServiceLoader. If successful, this would supersede ACCUMULO-1496.
Improve or extend "accumulo version" command
Main.java shouldn't have hard-coded lists of commands for usage
Use annotations for discovering shell commands
Use annotations to identify classes that are launchable by the start code
Tests to ensure that Main's classnames exist
Review on ReviewBoard