Eclipse启动之三 : 启动器插件(百度空间迁移)

Eclipse启动之三启动器插件

  • 空间
 

启动插件名为org.eclipse.equinox.launcher.<version>,入口类org.eclipse.core.launcher.main.它是Eclipse虚拟机启动的最早的插件

main整体流程:

1.处理命令行参数

2.设置虚拟机属性

3.处理配置

4.获取安装路径

5.获取启动路径

6.加载JNI动态库

7.设置安全属性

8.处理闪屏

9.启动Eclipse核心框架

 

1.处理命令行参数           解析命令行参数

-showsplash            定位闪屏文件参数

-vmargs                  java虚拟机参数

-nl                           本地语言设置                     对应系统属性osgi.nl

-vm                        定位java虚拟机参数

--launcher.library    外壳程序动态库路径

-launcher                launcher程序所在位置

-startup                  startup.jar所在的位置

-name                    启动程序所用的名字            对应系统属性eclipse.launcher.name

-exitdata                退出数据

-configuration        配置文件位置                       对应系统属性osgi.configuration.area

-install                    安装路径                              对应系统属性osgi.install.area

 

 

2.设置虚拟机属性           将解析的虚拟机参数设置到系统属性中

系统属性eclipse.vm                       来源于参数-vm

系统属性eclipse.vmargs                来源于参数-vmargs

系统属性eclipse.commands           来源于整个命令行

 

3.处理配置文件

定位配置文件config.ini算法:

1.读取系统属性osgi.configuration.area

2.如果第一步未找到则读取系统属性osgi.baseConfiguration.area

3.读取osgi.configuration.cascaded属性 如果属性值为true,表示需要级联的配置文件,则读取读取系统属性osgi.sharedConfiguration.area

4.如果第三步中未找到配置文件,则在安装路径下/configuration目录中定位

5.将配置文件中的属性合并到系统属性中

6.读取系统属性osgi.framework,其值为启动路径

 

8.处理闪屏          显示闪屏窗口

定位闪屏图标splash.bmp的算法

1.读取系统属性osgi.splashLocation

2.如果第一步中未找到,则读取osgi.splashPath属性.一般此属性在配置文件中指定

此步中保存了2个系统属性

org.eclipse.equinox.launcher.splash.handle    闪屏窗口的句柄

org.eclipse.equinox.launcher.splash.location  闪屏图标的位置

 

9.启动Eclipse核心插件           创建URL类加载器,并调用org.eclipse.core.runtime.adaptor.EcluipseStarter的run方法

其中通过系统属性osgi.parentClassLoader 或者osgi.frameworkparentClassLoader指定URL类加载器的父加载器,从而决定了程序可访问的类范围

未指定的话,父类加载器为BootStrapClassLoader.

属性值 boot       表示BootStrapClassLoader

属性值app         表示 SystemClassLoader

属性值ext          表示ExtensionClassLoader

属性值Current    表示当前类加载器

posted on 2015-07-07 19:51  学无止境fp  阅读(516)  评论(0编辑  收藏  举报

导航