`
forgetOneself
  • 浏览: 59430 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JDK、JRE、JVM的关系

    博客分类:
  • java
阅读更多
如果安装了JDK,会发同你的电脑有两套JRE,一套位于 <JDK安装目录></JDK安装目录>\\jre 另外一套位于 C:\\Program Files\\Java\\j2re1.4.1_01 目录下后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:\\Program Files\\Jav a 目录下的JRE.如果你只安装JRE,而不是JDK,那么只会在 C:\\Program Files\\Java 目录下安装唯一的一套JRE. JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。所以当你装完JDK后,如果分别在硬盘上的两个不同地方安装了两套JRE,那么你可以想象你的电脑有两台虚拟的Java PC机,都具有运行Java程序的功能。所以我们可以说,只要你的电脑安装了JRE,就可以正确运行Jav a应用程序。

    1、为什么Sun要让JDK安装两套相同的JRE?这是因为JDK里面有很多用Java所编写的开发工具(如javac.exe、jar.exe等),而且都放置在 <JDK安装目录></JDK安装目录>\\lib\\tools.jar 里。从下面例子可以看出,先将tools.jar改名为to ols1.jar,然后运行javac.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),而制作的目的是为了让开发者免于输入太长的指命。而且可以发现<JDK安装目录></JDK安装目录>\\lib目录下的程序都很小,不大于2 9K,从这里我们可以得出一个结论。就是JDK里的工具几乎是用Java所编写,所以也是Jav a应用程序,因此要使用JDK所附的工具来开发Java程序,也必须要自行附一套JRE才行,所以位于C:\\Program Files\\Java目录下的那套JRE就是用来运行一般Java程序用的。

    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.
分享到:
评论

相关推荐

    jdk、jre、jvm的区别

    #### 五、JDK与JRE的关系 JDK包含了JRE,也就是说,如果你安装了JDK,你就同时拥有了运行Java程序的能力(通过JRE)以及开发Java程序的能力(通过JDK提供的各种工具)。通常情况下,开发人员会安装JDK,而仅需要...

    Java零基础 - JDK JRE JVM三者关系.md

    ### Java零基础-JDK JRE JVM三者关系详解 #### 一、引言 在Java编程的世界里,JDK(Java Development Kit)、JRE(Java Runtime Environment)和JVM(Java Virtual Machine)这三个核心概念是不可或缺的基础知识。...

    一张图看懂JVM、JRE、JDK

    一张图看懂JVM、JRE、JDK

    详解Java中的JDK、JRE、JVM

    Java开发中的JDK、JRE和JVM是三个至关重要的概念,它们构成了Java应用程序的运行基础。理解这三个术语以及它们之间的关系是每个Java开发者必备的知识。 JDK(Java Development Kit)是Java开发工具包,它是Java开发...

    Java中JDKJRE和JVM解析.doc

    #### 五、JDK、JRE与JVM之间的关系 1. **JDK vs JRE**: - **JDK**:包含JRE以及开发工具(如编译器、调试器等),适用于Java开发人员。 - **JRE**:仅包含运行Java程序所需的组件,适用于仅需要运行Java应用的...

    JDK JRE与JVM1

    Java 技术体系的核心组成部分包括 JDK (Java Development Kit),JRE (Java Runtime Environment) 和 JVM (Java Virtual Machine)。理解这三个概念对于Java开发者至关重要。 首先,JDK是Java开发工具包,它是Java...

    JDK_JRE_JVM关系简示图.png

    简示JDK_JRE_JVM的大小关系

    JDK、JRE、JVM是什么?

    JDK(java Development Kit):java 的开发和运行环境,包括java 的开发工具和 jre,在程序员的电脑上当然要安装JDK; JRE(Java Runtime Environment):它是Java运行环境,包括,java 运行的所需的类库+JVM(java ...

    详解JDK,JRE,JVM.md

    详解JDK,JRE,JVM.md

    jdk与jre的区别

    JDK(Java Development Kit)和 JRE(Java Runtime Environment)是 Java 语言的两个核心组件,它们之间存在着一定的关系和区别。下面我们将详细介绍 JDK 和 JRE 的概念、区别和关系。 JDK JDK 是 Java 语言的软件...

    我们必须明白JDK,JRE和JVM之间的差异.mp4

    我们必须明白JDK,JRE和JVM之间的差异.mp4

    大数据必学Java基础(九):JDK,JRE,JVM的区别

    一、JDK、JRE、JVM的关系 1. JDK(Java Development Kit):Java开发工具包,是Java开发人员必备的软件,包含了编译器(javac)、JRE、调试器、文档生成工具、打包工具等。它提供了编写、编译、测试和部署Java应用...

    AIX JDK1.8 JRE1.8 32位

    标题中的"AIX JDK1.8 JRE1.8 32位"指的是IBM的Java开发工具包(JDK)和Java运行环境(JRE)的32位版本,这两个组件都是针对AIX操作系统设计的。AIX,全称Advanced Interactive eXecutive,是IBM推出的一种基于UNIX的...

    Java中的数据类型及JDK, JRE, 和 JVM解释及关系.zip

    在Java的世界里,了解数据类型、JDK(Java Development Kit)、JRE(Java Runtime Environment)以及JVM(Java Virtual Machine)的关系至关重要,它们是Java程序运行的基础。 首先,让我们深入探讨Java中的数据...

    JDK,JRE,JVM区别与联系.pdf

    总的来说,JDK、JRE和JVM之间的关系可以总结为:JDK是开发Java程序的全套工具,包含JRE;JRE是运行Java程序所必需的环境,它包括JVM和Java核心类库;而JVM则是负责解释执行Java字节码的虚拟计算机。理解这三个概念...

Global site tag (gtag.js) - Google Analytics