zoukankan      html  css  js  c++  java
  • JDK、JRE、JVM

    JDK是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。JRE是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JVM是整个java实现跨平台的最核心的部分,能够运行以Java语言写的程序

    1.JDK

    JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。

    2.JRE

    JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)。

    3.JVM

    JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

     .java为Java的源文件后缀,编写的代码需要写在.java文件中。

        Javac编译器,用于读取Java源代码,并将其编译成字节代码。经过javac编译后形成.class,是字节码文件。

        Java虚拟机(JVM)运行.class文件从而实现程序的运行。

        1、JVM——java virtual machine,就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。

        2、JRE——java runtime environment,是指java运行环境。光有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。所以,在你写完java程序编译成.class之后,你可以把这个.class文件和jre一起打包发给朋友,这样你的朋友就可以运行你写程序了。(jre里有运行.class的java.exe)

        3、JDK——java development kit,是java开发工具包,让我们看一下JDK的安装目录,真正在运行java时起作用的是以下四个文件夹:bin、include、lib、 jre。

        bin:最主要的是编译器(javac.exe)

        include:java和JVM交互用的头文件

        lib:类库

        jre:java运行环境(注意:这里的bin、lib文件夹和jre里的bin、lib是不同的)

        现在我们可以看出这样一个关系,JDK包含JRE,而JRE包含JVM。总的来说JDK是用于java程序的开发,而jre则是只能运行class而没有编译的功能。 

        Eclipse、ide、NetBeans等其他IDE有自己的编译器而不是用JDK bin目录中自带的,所以在安装时你会发现他们只要求你选中JRE路径就ok了。 

    作为JDK实用程序,工具库中有七种主要程序。

    ◆Javac:Java编译器,将Java源代码转换成字节码。

    ◆Java:Java解释器,直接从类文件执行Java应用程序字节代码。

    ◆appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。

    ◆Javadoc:根据Java源码及说明语句生成HTML文档。

    ◆Jdb:Java调试器,可以逐行执行程序,设置断点和检查变量。

    ◆Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。

    ◆Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。

  • 相关阅读:
    GRUB2 分析 (三)
    GRUB2 分析 (二)
    快速填充像素的方法
    GRUB2 分析 (一)
    自制Linux映像和发行版Robomind
    为MarS Board安装无线网卡Linux驱动
    alsa音频播放过程中的基本概念
    常见Soc平台图形内存管理学习笔记
    snprintf笔记
    linux命令行配置wifi连接并通过ssh代理开启socks代理
  • 原文地址:https://www.cnblogs.com/cing/p/9198938.html
Copyright © 2011-2022 走看看