动态库中的主要实现文件是:eclipse.c
其主要功能定位启动Java虚拟机和显示Splash窗口(暂未用,通过在org.eclipse.equinox.launcher.Main中调用来显示)
java虚拟机定位算法:
1.从-vm参数所指定的文件或目录中查找
2.如果没有指定-vm参数,程序会寻找Eclipse自带的JRE,它会在当前目录中查找jre\bin\javaw.exe
3.按照系统的环境变量指定的路径去查找javaw.exe
其中,通过-vm参数指定虚拟机位置可以有多种选择:
1.目录名:则到指定目录下寻找default.ee文件,如果没有则查找java虚拟机可执行程序javaw.exe。如果还没有继续找java虚拟机动态库文件jvm.dll;
2.执行环境描述文件.ee
3.java虚拟机动态库文件
4.java虚拟机可执行文件
找到java虚拟机以后下一步是寻找startup.jar
1.到-startup参数指定目录下查找
2.到plugins目录下查找以org.eclipse.equinox.launcher开头的jar文件
3.到程序的启动目录下查找(兼容以前的启动模式)
Splash窗口图标定位算法:
1.判断是否含有-nosplash参数,有则不显示Splash窗口
2.如果有-showsplash 参数且参数指向一个文件,则直接返回指定文件
3.如果有-showsplash 参数且参数指向一个目录,则定位到指定目录下的splash.bmp文件
4.如果还未找到,则将参数做/path/prefix_<version>分割,然后去/path/prefix目录下寻找
5.如果还未找到,最后到Plugins目录下+参数指定路径下查找
最后虚拟机启动完成,通过虚拟机加载org.eclipse.equinox.launcher.<version>包下的"org.eclipse.equinox.launcher.Main"类,然后调用其Run方法