程序入口 org.broadinstitute.hellbender.Main类下的main函数
public static void main(final String[] args) { new Main().mainEntry(args); }
mainEntry函数是主要分为三个步骤:初始化命令行函数和运行命令行函数以及处理运行结果
- 初始化命令行函数,setupConfigAndExtractProgram调用extractCommandLineProgram方法,搜索org.broadinstitute.hellbender和picard目录下
picard.cmdline.CommandLineProgram或者CommandLineProgram的子类,CommandLineProgram的每个实现类就是一个子功能,
运行命令行函数,instanceMainPostParseArgs下调用runTool执行程序,
public final Object runTool(){ try { logger.info("Initializing engine"); onStartup(); logger.info("Done initializing engine"); return doWork(); } finally { logger.info("Shutting down engine"); onShutdown(); } }
- 处理结果在handleResult方法,直接打印结果
protected void handleResult(final Object result) { if (result != null) { System.out.println("Tool returned:\n" + result); } }