I'd rather drop the system field entirely--having a secondary out-of-band channel for parse errors is of dubious added value.

If that field is dropped, then this class could become a publicly-immutable JUnitCommandLineParseResult, with the only public creation being a static method like JUnitCommandLineParseResult.parse(args).  And then we could just make getFilter, getClasses, etc, public without caveat.