run方法调用的是basicRun是Eclipse的主要启动函数,它的主要内容包括: 1.记录启动启动时间,通过debug模式可以看到Eclipse的启动时间 2.processCommandLine:处理Command参数,并根据Command参数设置默认属性 3.setupVMProperties:将VM参数写入到System.Properties中 4.processConfiguration:加载配置信息 5.getInstallLocation:获取安装路径 6.getBootPath:获取启动路径列表 7.setupJNI:启动JNIBridge,加载dll类库 8.检查JDK版本、检查配置信息 9.setSecurityPolicy:设置安全策略 10.handleSplash:启动闪屏 11.invokeFramework:加载框架 下面对重点方法进行描述: 1.processConfiguration:处理配置信息 如果在启动时没有指定-configuration参数,将会以当前安装目录和默认的配置文件夹configuration加载配置信息,默认加载目录下的config.ini文件,以properties读入,将配置信息合并到System.getProperties()中。在config.ini中osgi.framework的指定的Jar包进行启动。 2.getInstallLocation():获取当前安装路径。它先从系统配置信息中获取安装路径,如果没有,则通过获取main类包的路径换算出安装路径(Main.class.getProtectionDomain().getCodeSource().getLocation())方式获取。 3.getBootPath:获取启动路径列表,读取osgi.framework及osgi.framework.extensions(逗号分割)。 4.setupJNI:首先获取--launcher.library的路径,并根据操作系统、架构、窗体架构等信息,加载相应的本地文件(例如:dll或so)。并使用Runtime.getRuntime().load(lib)加载本地文件。 5.setSecurityPolicy方法:对OSGi框架设置全部权限。 6.handleSplash:加载闪屏 7.invokeFramework:启动OSGi框架。设置OSGi框架的ClassLoader,如果没有指定ClassLoader,默认将boot设置为OSGi框架的ClassLoader的父类,并产生一个Equinox框架的StartupClassLoader,在启动路径列表里加载相应的类,通过该ClassLoader加载org.eclipse.core.runtime.adaptor.EclipseStarter类,并调用其run方法,将命令行参数及闪屏对象(线程)传递给run方法。 至此Eclipse的启动包中方法结束,下一节将将启动类org.eclipse.core.runtime.adaptor.EclipseStarter的run方法。
equinox,Eclipse探秘-第一章-Eclipse启动(2)-org.eclipse.equinox.launcher
run方法调用的是basicRun是Eclipse的主要启动函数,它的主要内容包括: 1.记录启动启动时间,通过debug模式可以看到Eclipse的启动时间 2.processCommandLine:处理Command参数,并根据Command参数设置默认属性 3.setupVMProperties:将VM参数写入到System.Properties中 4.processConfiguration:加载配置信息 5.getInstallLocation:获取安装路径 6.getBootPath:获取启动路径列表 7.setupJNI:启动JNIBridge,加载dll类库 8.检查JDK版本、检查配置信息 9.setSecurityPolicy:设置安全策略 10.handleSplash:启动闪屏 11.invokeFramework:加载框架 下面对重点方法进行描述: 1.processConfiguration:处理配置信息 如果在启动时没有指定-configuration参数,将会以当前安装目录和默认的配置文件夹configuration加载配置信息,默认加载目录下的config.ini文件,以properties读入,将配置信息合并到System.getProperties()中。在config.ini中osgi.framework的指定的Jar包进行启动。 2.getInstallLocation():获取当前安装路径。它先从系统配置信息中获取安装路径,如果没有,则通过获取main类包的路径换算出安装路径(Main.class.getProtectionDomain().getCodeSource().getLocation())方式获取。 3.getBootPath:获取启动路径列表,读取osgi.framework及osgi.framework.extensions(逗号分割)。 4.setupJNI:首先获取--launcher.library的路径,并根据操作系统、架构、窗体架构等信息,加载相应的本地文件(例如:dll或so)。并使用Runtime.getRuntime().load(lib)加载本地文件。 5.setSecurityPolicy方法:对OSGi框架设置全部权限。 6.handleSplash:加载闪屏 7.invokeFramework:启动OSGi框架。设置OSGi框架的ClassLoader,如果没有指定ClassLoader,默认将boot设置为OSGi框架的ClassLoader的父类,并产生一个Equinox框架的StartupClassLoader,在启动路径列表里加载相应的类,通过该ClassLoader加载org.eclipse.core.runtime.adaptor.EclipseStarter类,并调用其run方法,将命令行参数及闪屏对象(线程)传递给run方法。 至此Eclipse的启动包中方法结束,下一节将将启动类org.eclipse.core.runtime.adaptor.EclipseStarter的run方法。
最新评论