public static void main(String[] args) throws OptionParserException, IOException { Config config = new Config(); OptionParser optionParser = new OptionParser(config); optionParser.parse(args); if (config.displayHelp) { optionParser.printUsage(); } if (config.verbose) { Logger.getRootLogger().setLogLevel(LogLevel.ALL); } if (config.searchFolderName == null) { System.err.println("no search folder is specified"); return; } _logger.debug("search folder = " + config.searchFolderName); if (config.packageName == null || config.className == null) { System.err.println("no package or class name is given"); return; } // search track classes File searchFolder = new File(config.searchFolderName); TrackResourceFinder finder = new TrackResourceFinder(searchFolder); finder.enter(searchFolder); // template Template template = new Template( FileResource.find(TrackLoaderGenerator.class, "TrackLoader.java.template") .openStream()); Properties p = new Properties(); p.put("trackClasses", finder.trackClassFile); p.put("trackGroupClasses", finder.trackGroupClassFile); p.put("packageName", config.packageName); p.put("className", config.className); String result = template.apply(p); System.out.print(result); }