java虚拟机的启动实例–eclipse的方式_虚拟机打开eclipse的命令

查看eclipse的源代码,有以下一个zip压缩包:
src/plugins/org.eclipse.platform/launchersrc.zip
这是eclipse的启动源码包,解压后有一个launchersrc/library目录,该目录中有一个文件eclipse.c(高一些的版本需要看的是eclipseMain.c),这就是eclipse的带有main函数的主文件,它和一个它依赖的文件最终编译成eclipse这个可执行文件。
      eclipse是由java写成的,然而其启动文件却是一个平台可执行文件-elf/pe,那么一定是eclipse可执行程序启动了java环境。在这些c代码中,最终要调用一个函数:startJavaVM或者launchJavaVM,而这些函数最终有两种实现方式,一种是fork/exec+wait的方式,这样的话当你运行eclipse的时候ps或者查看进程管理器的时候就会发现有两个进程,一个是eclipse,另一个是javaw或者java,它主要的优点是可以自己定义java环境的所在地...另一种方式是直接调用JVM的接口启动java环境,就是类似java程序做的那样,它自己搜索java环境的所在,同时它也是可以指定参数的,程序相对比较紧凑一些。
     既然eclipse只是一个壳,那么我们显然可以绕开这个壳,它无非就是一个和java程序类似的东西,只是更漂亮一些罢了。查看下面目录的源码,发现作者没有改变入口,仍然以main方法为入口,因此完全可以用java命令来启动:
src/plugins/org.eclipse.equinox.launcher/src/org/eclipse/core/launcher/Main.java
这个Main.java是eclipse的启动类,也是被调用的第一个类,其很简单地调用了下面的过程:
org.eclipse.equinox.launcher.Main.main(args);
在下面的目录可以找到这个被调用的main:
src/plugins/org.eclipse.equinox.launcher/src/org/eclipse/equinox/launcher/Main.java
最终invokeFramework方法被调用,一切正式开始。之所以将启动程序封装成一个平台相关的可执行文件(elf/pe等),其主要原因就是启动很方便,不需要进行命令行输入,任何的GUI上直接点击即可,并且还能定制平台相关的启动风格。使用java命令直接启动eclipse的方法如下:
java -jar $eclipse的目录/plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
eclipse是一个可执行文件,它可能被病毒感染,然而即使它被感染了,直接使用java命令启动的IDE可能还是好的,除非java本身也被感染了...此时还可以自己写启动程序,除非jvm动态库被感染了,此时我们还可以重新下载,除非互联网被感染了!

原文链接: https://blog.csdn.net/dog250/article/details/6007299

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    java虚拟机的启动实例--eclipse的方式_虚拟机打开eclipse的命令

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/409570

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月26日 上午11:29
下一篇 2023年4月26日 上午11:29

相关推荐