CommandLine parses the command line for a description of a set of files and converts it into a list of individual files to process. CommandLine does nothing by itself. It is library code you can incorporate into your own Java programs like this: CommandLine wantedFiles = new CommandLine( args, new AllDirectoriesFilter() /* which directories to include */, new ExtensionListFilter( "java" ) /* which file extensions to include */); // iterate through all the files in the collection. for ( File file : wantedFiles ) { System.err.println( file.getCanonicalPath() ); }// end for On the command line, you can specify a list of individual files, mixed with a list of directories. If you use the -s switch in includes all the files in all the recursive subdirectories. Why that apple tree icon? It represents a tree of various types of files, from which you pick some.