java程序运行分析

使用工具:Eclipse Stardard 4.32版本(window7环境)

今天我们通过一个及其简单的例子来分析一个java程序是如何在我们的及其上跑起来的。部分内容是参考其他人的,会在参考的地方注明。

我的测试代码部分如下:

public class Test {

public static void main(String[] args) {

new Test();

      Int test =1;//只是为了测试方便,去掉IO部分的分析

}

}

就是这么简单的代码,如何在我们的机器上跑起来,确实是需要一件很折磨人的事情

首先我们了解一下,我们的Eclipse是如何启动的.



参考书籍:Java编程思想(第四版)      深入理解java虚拟机(周志明著)

在这里我就不重复罗嗦详细的原理,因为那不是我想要说的,我想分析的是最简单的java程序是如何跑起来

的,而非一个exe是如何跑起来的

第一个步骤:

我们都会去双击一个eclipse.exe程序,然后会出现启动页面.

这个过程是会去读取相同目录下的配置文件eclipse.ini,读取出eclipse所需要运行的一些参数,

比如我们安装的jdk/jre路径在哪,在jdk1.5版本之前,在eclipse.ini中我们会发现-vm参数,但是后

续版本却没有该参数了,原因是后续版本的java程序不一定运行在sun的hotspot虚拟机中,也可能

运行其他虚拟,因此在后续版本中取消了该参数,然后会读取到启动eclipse程序的jar包startup.jar

我们通过解压\plugins\org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar(不同版本后面的

参数会不一样)会发现启动的Main类,然后通过Main类的静态方法main(String args)就会调用一系

列与本机有关的参数,通过JNI接口来调用本地方法启动我们的Eclipse了如果你感兴趣,可以读取上

面的四个参考博客,讲述的非常详细.

第二个步骤:

我们会运行我们编写好的代码,虽然我们只是在Eclipse点击了一个运行按钮,但是Eclipse却是

调用了我们安装在本机的jdk/bin中的工具,去启动我们的JVM,然后加载我们的类调入内存

中执行,因此我们所需要分析的就是这个步骤,究竟我们写好java代码,是怎么运行起来的.而我

们能做的就是通过调试跟踪源码的走向,来分析,JVM究竟做了哪些封装好的事情.

第三个步骤:

好了,我们开始吧.

我们在new Test()处设置好断点,然后右键以debug模式运行,会出来下面图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值