一个java程序运行环境的运行结果

我的win7命令提示符怎么老是运行不出结果呢?比如我的一个java程序是Test,每次运行到java Test就会出现
微信公众账号ZOL问答堂
关注微信,随时随地解答您的疑惑
ZOL问答堂官方微博@ZOL问答堂
关注成功!该问题被回答后,将给您发送站内短信。
您也可以通过关注问答堂微信,及时获得您关注问题的回答。
微信关注问题方法“”一个Java程序的执行过程
一个Java程序的执行过程
我们手工执行java程序是这样的:
1 在记事本中或者是UE的文本编辑器中,写好源程序;
2 使用javac命令把源程序编译成.class文件;
编译后的.class(类字节码)文件中会包含以下内容:
ConstantPool:符号表;
FieldInfo:类中的成员变量信息;
MethodInfo:类中的方法描述;
Attribute:可选的附加节点。
FieldInfo节点包含成员变量的名称,诸如public,private,static等的标志。ConstantValue属性用来存储静态的不变的成员变量的值。Deprecated和Synthetic被用来标记一个成员变量是不被推荐的或由编译器生成的。
3 有了.class文件,我们执行 java 解释命令就可以运行java程序了。
现在我们主要讨论一下,当执行 java这个命令后,会发生什么事情呢?
首先,JVM装载.class,也就是类装载器装载类字节码。一个类装载器本身也是一个java类,所以,类装载器自身也需要被另外一个类装载器装载,这就出现了类似先有蛋,还是先有鸡的问题。但JAVA中的类装载器的这个问题却很容易解决。JAVA的虚拟机(JVM)中内嵌了一个称为Bootstrap类装载器,它是用特定于操作系统的本地代码实现的,属于JAVA虚拟机的内核,Bootstrap类不用专门的类装载器去进行装载。Bootstrap类负责加载JAVA核心包中的类(即rt.jar文件中的类),这些类的Class.getClassLoader()方法返回值为null,即表示是Bootstrap类装载器。JAVA核心包中有另外两个类装载器:ExtClassLoader和AppClassLoader,它们都是用JAVA语言编写的JAVA类,其中ExtClassLoader类装载负责加载存放在&JAVA_HOME&/jre/lib/ext目录下的jar包中的类,AppClassLoader负责加载应用程序的启动执行类,即当使用java命令去启动执行一个类时,JAVA虚拟机使用AppClassLoader加载这个类。在编译和运行JAVA程序时,都会通过ExtClassLoader类装载器去&JAVA_HOME&/jre/lib/ext目录下的JAR包中搜索要加载的类,所以,如果将包含例如Servlet
API的jar包或者是javamail.jar包复制到该目录下,在编译Servlet或JavaMail程序时,就不必在CLASSPATH环境变量中增加包含Servlet
API的jar包或者是javamail.jar包文件。
以上,就是一个JAVA程序执行的大致过程。------------------------------------------Java字节码程序的执行过程:Java字节码程序的执行过程Java程序在启动的时候首先交给JVM(一个JVM的运行创建一个独立的进程)一个拥有public static void main(string[] args)函数的类,JVM通过引导类加载器(Bootstrap ClassLoader)加载该类,加载完成之后进行校验、内存填充和结构化(即连接--校验/准备/分解),然后启用一个线程执行main函数(大多数可执行程序都有像main一样的入口函数约定,有些地方可以成为入口地址),在执行main函数的过程中碰到新的类,将会再次用ClassLoader加载该类,重复连接,并且继续执行main中调用的其它函数,依次反复,直到特定的终止条件发生,程序退出。JVM执行连接是典型的动态链接,也就是在执行过程中按需加载类,所有加载类的工作都交由ClassLoader来完成。在后面谈到的?就是ClassLoader加载之后交给虚拟机的字节码格式,换句话来说JVM不管ClassLoader之前的类来源和格式,它只管ClassLoader加载之后的格式,理解这点很重要。&ClassLoader分为系统级和用户自定义级两类,通过用户自定义类加载器,可以完成自定义的类加载方式(如何自定义请参考该章的?部分)。关于更多Java字节码的执行过程细节,在后面内容?中将会更进一步提到。
发表评论:
TA的最新馆藏Help!eclipse运行程序为什么显示的是上一个程序的结果_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:523,844贴子:
Help!eclipse运行程序为什么显示的是上一个程序的结果收藏
Help!eclipse运行程序为什么显示的是上一个程序的结果,之前都不是的,就这个是这样,运行多少次都是上一个的运行结果
上海java培训,选达内,美国上市教育机构,「java培训之父」Sun认证,先就业后付款!达内java培训,名师授课,0基础120天速成java工程师,0元试学!学习+认证+就业=薪前景!
而且这里也没有我要运行的那个程序~
目测用的快捷键
以前也是用的快捷键都没这样~
把代码换一个文件夹放着,打开试试
当前文件编辑区上右键,run
安安静静的水水经验,别的什么都不想说!
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或JAVA中的一个程序,请问运行结果为什么会是0?_百度知道}

我要回帖

更多关于 java程序运行环境 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信