Jmeter源码学习系列:从Jmeter.properties加载配置并启动Jmeter
上一篇简单说了一下jmeter/src/core/org.apache.jmeter/NewDriver.Java文件,简单描述了一下在启动Jmeter前做的准备工作,这次我们从NewDriver.java的main方法入手,看看Jmeter启动的时候是怎么从Jmeter.properties文件加载配置的。
public static void main(String[] args) {
先检测基本的环境变量配置:如Java环境,Jmeter的安装路径,如果环境变量配置有错,直接报错
if(!EXCEPTIONS_IN_INIT.isEmpty()) {
System.err.println("Configurationerror during init, see exceptions:"+exceptionsToString(EXCEPTIONS_IN_INIT));
} else{
Thread.currentThread().setContextClassLoader(loader);
对Jmeter使用的Log进行初始化
setLoggingProperties(args);
加载Jmeter方法
Class<?> initialClass =loader.loadClass("org.apache.jmeter.JMeter");// $NON-NLS-1$
从这里进入jmeter/src/core/org.apache.jmeter/Jmeter.Java
对静态变量进行定义
Object instance = initialClass.newInstance();
Method startup = initialClass.getMethod("start", new Class[]{ new String[0].getClass() });//$NON-NLS-
startup.invoke(instance, new Object[]{ args });
} catch(Throwable e){ // NOSONAR We want to log home directory in case of exception
e.printStackTrace(); // NOSONAR No logger at this step
System.err.println("JMeter home directory was detected as: "+JMETER_INSTALLATION_DIRECTORY);