大众方向盘装b:JDK、JRE、JVM之间的关系
来源:百度文库 编辑:偶看新闻 时间:2024/05/02 10:00:52
如果安装了JDK,会发同你的电脑有两套JRE,
一套位于
另外一套位于 C:\Program Files\Java\j2re1.4.1_01 目录下
后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:\Program Files\Java 目录下的JRE。
如果你只安装JRE,而不是JDK,那么只会在 C:\Program Files\Java 目录下安装唯一的一套JRE。
JRE 的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。所以当你装完 JDK后,如果分别在硬盘上的两个不同地方安装了两套JRE,那么你可以想象你的电脑有两台虚拟的Java PC机,都具有运行Java程序的功能。所以我们可以说,只要你的电脑安装了JRE,就可以正确运行Java应用程序。
1、为什么Sun要让JDK安装两套相同的JRE?
这是因为JDK里面有很多用Java所编写的开发工具(如javac.exe、jar.exe等),而且都放置在
Exception in thread "main " java.lang.NoClassDefFoundError: com/sun/tools/javac/Main
这个意思是说,你输入javac.exe与输入
java -cp c:\jdk\lib\tools.jar com.sun.tools.javac.Main
是一样的,会得到相同的结果。
从这里我们可以证明javac.exe只是一个包装器(Wrapper),而制作的目的是为了让开发者免于输入太长的指命。而且可以发现
2、如果一台电脑安装两套以上的JRE,谁来决定呢?
这个重大任务就落在java.exe身上。Java.exe的工作就是找到合适的JRE来运行Java程序。
Java.exe依照底下的顺序来查找JRE:
自己的目录下有没有JRE;
父目录有没有JRE;
查询注册表:
[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
所以java.exe的运行结果与你的电脑里面哪个JRE被执行有很大的关系。
3、介绍JVM
JRE目录下的Bin目录有两个目录:server与client。这就是真正的jvm.dll所在。
jvm.dll 无法单独工作,当jvm.dll启动后,会使用explicit的方法(就是使用Win32 API之中的LoadLibrary()与GetProcAddress()来载入辅助用的动态链接库),而这些辅助用的动态链接库(.dll)都必须位于jvm.dll所在目录的父目录之中。
因此想使用哪个JVM,只需要设置PATH,指向JRE所在目录底下的jvm.dll。
JVM JRE, API JDK 有什么关系和区别?尤其是那个JDK 和JRE 的区别?
JRE与JVM的区别和联系?
Java运行环境JRE和Java虚拟机JVM有什么关系?
jdk与jre
Tomcat,Java,apache,jdk是什么?之间的关系是?
有谁知道JAVA中JDK和JRE的区别啊?
为什么我下的jdk里没有javac, 而我单独下载的jre里面却有javac呢
解释一下JRE、JDK和SDK分别是什么啊?
java里jdk和jre有什么区别?
装JAVA是不是就装JRE就可以?jdk是什么?
请问java运行平台除了要安装jvm jdk,还需要哪些软件?
情人之间的关系
同学之间的关系
血型之间的关系
曹植曹操曹丕之间的关系
星座之间的关系
动物之间的关系
朋友之间的关系
“三个有利于”之间的关系
魑魅魍魉之间的关系?
集合之间的关系?
linux下的JRE是什么意思
为了运行JAVA,我下载了JRE JDK 那还需要下JCREATOR吗?
关于java:JDK和JRE有什么不同和联系啊?