I'd move all these initialization bits in run() directly, and get rid of validateFlags()/setup().
Do not throw an exception when you know how to handle the error.
Print a message on stderr and return a shell command error code.