美文网首页
关于Java环境

关于Java环境

作者: 假鞋子 | 来源:发表于2017-04-28 23:05 被阅读0次

    一、概念


    JDK:Java Development Kit。即Java开发工具,其中包含了Java运行环境、Java工具和Java基础类库。
    JRE:Java Runtime Enviroment。即Java运行环境,包含JVM以及Java核心类库。
    JVM:Java Virtual Machine。即Java虚拟机,是整个Java平台最关键的部分,用来运行Java程序。
    背景:和其他程序不同,Java程序由JDKjavac编译成class文件的,然后在JRE环境(虚拟机JVM+lib核心文件jar)下运行,由虚拟机解释成机器语言。同时,每个操作系统的jvm都不一样,因此能让Java 程序在各大操作系统中运行。
    <br />

    二、 关系


    1. 在安装JDK的时候会附带一个JRE询问是否安装,同时安装好的JDK目录下也有一个jre目录。为什么会存在2个JRE,他们是什么区别呢?
    答:
    JRE是Java运行环境,而JDK是包含了Java运行环境和诸多Java工具基础类库的开发工具。
    因此,很多人可能已经明白了:JDK下的工具都是Java写的,而要运行这些程序,就需要JRE,因此jre是给开发人员使用的,当开发人员使用了JDK工具,写了程序,当然就需要JRE来运行。而如果当用户只需要运行Java程序的时候,单独的JRE就足够了。工作职责不同
    也因此,只有在JDK的jre目录下存在用来编译的javac.exe文件,而单独JRE下的无法查看api
    <br />

    2. 在JRE下的lib和JDK下的/jre/bin目录中存在的clientserver目录中的jvm.dll。他们又是什么区别呢?
    答:
    server与client下jvm.dll的差别在于所使用的vm不同,执行java程序时默认的是client VM。若使用server VM,会花比较长的启动时间及消耗较多的内存,为的是启动程序后可以获得较好的执行性能。
    <br />

    3. JDK、JRE中共有3个bin目录,他们有什么区别?
    答:
    JDK下的lib包括Java开发需要的jar包,JDK下的一些工具可能用到该目录中的文件,比如编译器。
    JRE下的lib包括Java运行需要的jar包,是给JVM运行使用,包括所有标准类和扩张类。
    JDK下的JRE中的lib开发环境中,给JVM运行使用的jar包。当导入外部jar包时,因为系统需要编译,会调用JDK的编译器,同时由于运行需要,会需要JVM虚拟机运行程序。
    <br />

    4.Java环境配置时的path和classpath有什么用
    答:
    path是给JDK的工具提供的,是为了能在cmd中通过直接敲命令执行的。
    classpath是为Java程序用到的库文件所设的,是资源库。因此当我们在开发中需要其他jar包,就要将他们加到classpath中。
    <br />

    5.javac和java有什么区别?
    答:
    Javac是把Java文件编译成class,Java是执行class文件。
    在命令行中javac -version是JDK版本,java -version是JRE版本。所有可以通过修改path,改变系统默认的JDK版本和JRE版本。【where java】能查看本机上所有的java命令路径
    一般默认JRE使用JDK下的JRE。

    环境变量JDK和JRE不一致

    相关文章

      网友评论

          本文标题:关于Java环境

          本文链接:https://www.haomeiwen.com/subject/zdyazttx.html