`

JDK JRE Java虚拟机的关系--java深度历险笔记

    博客分类:
  • java
阅读更多

JDK JRE Java虚拟机的关系。
安装JDK时一定会在其子目录下面安装一个JRE,同时在安装的过程也会询问你是否要安装一个外部的JRE。如果我们选择安装则就同时拥有了两个jre。这两个JRE其实本质上是没有任何分别的。最主要的区别在于:JDK目录里面的JRE主要是设计用来运行JDK自带的那些工具的(Bin目录下)。而外部的JRE在安装的时候会自动注册到操作系统的path里面一般是:System32文件夹下面。因此我们只要安装了外部的JRE则运行Java程序时都是用的外部JRE来运行的(系统的默认path具有优先)。
JVM只是JRE的一部分确切的说是JRE的一个动态链接库。
JDK里面的工具(Bin目录下的那些很小的.exe文件)几乎都是用Java编写的(都存放在JDK目录下面的lib文件夹中的tools.jar文件中),之所以是以.exe文件的形式出现是为了免于输入冗长的执行代码(java -classpath JDK_HOME\lib\tools.jar com.sun.tools.javac.Main)。此处的exe文件仅仅是一个包装器以方便用户的使用。很多软件最后都打包成exe文件就是一种包装器。因此这些包装器的运行其实最终都是去调用tools里面相应的Java字节码来运行因此都依赖于JRE所以在JDK内部才有一个JRE。
当我们电脑上安装了JBuilder等开发工具时它们都自带了自己的JDK,因此当我们运行Java程序的时候到底使用的哪一个JRE呢。这个是由java.exe文件来决定的。java.exe的作用就是找到相应的JRE来运行后面给出的.class文件。寻找逻辑如下:
首先在自己的目录下面查找JRE若没有找到,然后去父目录下查找,最后去Windows的注册表中(HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\)去找。而注册表中一般只有Client而没有Server虚拟机。所以输入
java -server时候会说找不到。当然找到JRE以后还有一个版本验证的过程,那就是验证java.exe和此JRE版本是否一致,假若我们运行的是jdk1.3版本的java.exe文件然后找到的是却是jdk1.4的jre程序就可能会出错。
我们在JRE/bin目录下面会看到有连个文件夹client和server。它们里面都会有一个jvm.dll文件这就是所谓的虚拟机。
在我们运行java.exe文件的时候我们要确定两个事情:
哪一个java.exe文件被执行,java.exe找到的是哪个JRE。
具体运行的是哪一个Java.exe主要取决于环境变量path的设置,对于Windows系统来说C:\Windows\System32是默认的。
因此我们再去添加指向我们安装的java.exe的环境变量时要注意与系统环境变量的先后关系。
path=D:\JDK_HOME\bin;C:\Windows\System32(优先运行JDK_HOME里面的java.exe)
和path=C:\Windows\System32;D:\JDK_HOME\bin;(优先运行系统目录下的java.exe文件)是不同的。因此当我们要想jre中(如ext目录)添加.jar文件时就要注意其匹配问题了。

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java虚拟机 jdk-6u31-windows-i586.part2

    java虚拟机jdk-6u31-windows-i586.part2

    java-jre-7u40-windows-i586

    java-jre-7u40-windows-i586

    Linux64位Java包: jdk-6u45-linux-x64.bin和jre-6u45-linux-x64.bin

    本话题主要关注的是针对64位Linux系统的Java开发工具包(JDK)和Java运行环境(JRE),具体为`jdk-6u45-linux-x64.bin`和`jre-6u45-linux-x64.bin`这两个文件。 **Java开发工具包(JDK)** JDK是Java开发的核心组件...

    Windows64位java包: jdk-6u45-windows-x64.exe和jre-6u45-windows-x64.exe

    Windows 64位Java包中的jdk-6u45-windows-x64.exe和jre-6u45-windows-x64.exe是为64位Windows系统量身定制的Java开发和运行环境。理解它们的区别、安装方法和相互依赖关系,能够帮助开发者更有效地构建、测试和部署...

    Windows32位java包: jdk-6u45-windows-i586.exe和jre-6u45-windows-i586.exe

    Java开发工具包(JDK)和Java运行环境(JRE)是Java编程语言的核心组成部分,对于Windows 32位系统,这里的"jdk-6u45-windows-i586.exe"和"jre-6u45-windows-i586.exe"分别代表了这两个组件的特定版本。 首先,JDK...

    java_jdk-8u161-windows-x64(jdk官方版本1.8)

    这个版本,即"jdk-8u161-windows-x64",是专为64位Windows操作系统设计的。Java JDK包含了许多组件,其中最重要的是Java编译器(javac)、Java解释器(java)、Java虚拟机(JVM)以及Java类库,这些使得开发者能够...

    java-jdk-8u51-windows-x64.exe.zip

    5. **安装过程**: "jdk-8u51-windows-x64.exe"是JDK的安装程序,双击运行后,用户可以选择安装路径、设置环境变量等,确保Java开发环境的正确配置。 6. **More.txt**:这个文件可能是安装指南、更新日志或者关于JDK...

    jdk-8u381-windows-x64.exe

    总结一下,"jdk-8u381-windows-x64.exe"是一个针对Windows 64位系统的Java 8更新381安装程序,提供了开发和运行Java应用程序所需的所有工具。使用它,开发者可以利用Java 8的特性编写高效、跨平台的代码,并通过持续...

    java-jdk1.6-jdk-6u45-windows-x64.zip

    1. 解压缩"java-jdk1.6-jdk-6u45-windows-x64.zip"文件,这将释放出"jdk-6u45-windows-x64.exe"可执行文件。 2. 双击运行"jdk-6u45-windows-x64.exe",安装向导会引导你完成安装过程。通常,你需要选择安装路径,...

    jre-8u271-windows-x64+jdk-8u271-windows-x64.7z

    "jre-8u271-windows-x64+jdk-8u271-windows-x64.7z"压缩包提供了Java开发和运行环境的64位Windows版本,适用于开发和执行Java应用程序。通过安装这两个组件,开发者可以编写、测试和运行Java代码,而普通用户则可以...

    java jdk-8u51-windows-i586.exe

    压缩包中的"jdk-8u51-windows-i586.exe"是安装程序,用户可以通过双击执行来安装Java JDK。"More.txt"可能包含了关于这个版本的更多信息,比如更新日志、安装指南或者许可协议等。用户在安装前应仔细阅读此文件,...

    jdk-8u201-windows-x64 JAVA JDK 1.8

    JDK的全称是Java Development Kit,即Java开发工具包,包含JRE与其它开发工具 作为开发人员,JDK是我们必须安装使用的,Java每个版本的更新实际上就是JDK的更新 Java Development Kit(JDK)是太阳微系统针对Java...

    jre-8u121-windows-x64

    JRE为Java Runtime Environment的简称,Java Runtime Environment(包括Java Plug-in)是Sun的产品,包括两部分:Java Runtime Environment和Java Plug-...JRE需要辅助软件--Java Plug-in--以便在浏览器中运行applet。

    jre-8u371-windows-x64

    JRE需要辅助软件--Java Plug-in--以便在浏览器中运行applet。 Java Plug-in软件允许Java Applet和JavaBean组件在使用Sun的Java Runtime Environment(JRE)的浏览器中运行,而不是在使用缺省的Java运行环境的浏览器中...

    jdk-8u341-linux-x64.tar.gz

    1. **Java运行时环境(JRE)**: JRE是执行Java程序的基础,包括Java虚拟机(JVM)、类库以及支持Java程序运行所需的其他组件。 2. **Java虚拟机(JVM)**: JVM是Java平台的核心,它负责解释并执行字节码,使得Java...

    java jdk-8u431-windows-x64

    java jdk-8u431-windows-x64.zip 解压缩版(非安装版,安装版:https://download.csdn.net/download/hefeng_aspnet/90295463),如果仅仅想运行 Java 程序(客户端),只需要安装独立的 JRE;如果想进行 Java 编程...

    jdk-8u111-windows-x64安装包

    **Java Development Kit (JDK) ...总之,`jdk-8u111-windows-x64`是一个重要的Java开发工具,为Windows 64位系统的开发者提供了高效、安全的开发环境,同时包含了Java 8的关键特性,是进行Java开发不可或缺的基础组件。

    jdk1.6官方版 jdk-6u45-windows-x64 下载

    java环境搭建 jdk6(包含jre)64位 jdk-6u45-windows-x64

    jdk-8u321-windows-x64.exe

    安装这个执行文件后,开发者将拥有完整的Java开发工具,包括Java编译器(javac)、Java虚拟机(JVM)、Java运行时环境(JRE)以及各种命令行工具,如jar工具、javadoc等。 对于Windows用户,安装JDK 8u321的步骤...

    jdk-8u311-windows-x64.exe

    标题“jdk-8u311-windows-x64.exe”指的是Java Development Kit(JDK)的311更新版本,适用于Windows操作系统的64位架构。JDK是Oracle公司提供的一个核心工具集,包含了编译、调试、运行Java应用程序所需的各种组件...

Global site tag (gtag.js) - Google Analytics