JDK与JRE
jdk是Java开发的运行环境,如果不需要开发只需要运行Java程序那么就可以只安装jre。jdk中包含了jre。
jre是Java运行时环境,Java文件被javac编译后形成字节码文件,这个文件是计算机不能理解和处理的,需要jvm处理后形成机器语言在传递给计算机处理。
安装目录介绍
bin:主要存放的是Java的编译器、解析器等工具
jre(Java runtime environment):Java运行时环境
jre/bin:Java平台所使用的工具或者可执行程序
jre/lib:jre在运行时需要的一些类库、属性设置、资源文件
lib:Java开发工具的一些类库、包含了JDK工具的核心类库。
src:源码
注意:jdk文件夹内部和外部同时存在两个jre文件夹
内部jre:当你开发Java程序时,需要用到一下javac之类的命令,就会调用jdk内部的jre
外部jre:当你是需运行一个Java程序而不是开发时,就会调用外部的jre。
外部jre中,在其client文件夹中有个jvm.dll;内部jre中,多了一个server文件夹其中也有jvm.dll文件,主要两个jvm的区别,使得内外部的jre有不同的分工,并且能在各自的分工上做到最好(提高各自的效率和性能)
附上oracle官网截图:
从图中可以看出JVM< JRE< JDK
环境变量解释
path:与其值相对应的路径下面是一些Java的程序命令,如javac;
classpath:对应路径下时程序需要使用到的一些Java提供的jar包
JAVA_HOME:指向jdk的安装目录,各种编程软件就是通过其找到并使用安装好的jdk
JDK、JRE和JVM的关系
JDK = 常用的Java命令(bin)+jre(类库+jvm)
JRE = 类库 +JVM
JVM = Java虚拟机(实现跨平台、实现类的加载)
在实际开发中,Java程序通过JDK的编译工具将Java程序编译成字节码文件,在jre上运行字节码文件,jvm解析这些字节码文件,再将结果映射到cpu指令,最终显示到显示器上面
jvm
Java虚拟机是运行Java程序必不可少的机制。jvm实现了Java语言的最主要的特征:平台无关性。##原理:编译后的Java程序指令并不直接在硬件系统的cpu上执行,而是由jvm执行。jvm屏蔽了与具体平台相关的信息,使得Java语言编译程序只需要生成在jvm上运行的目标字节码文件,就可以在多种平台上不加修改的运行。Java虚拟机在执行字节码文件时,把字节码解释成具体平台上的机器指令执行——作用1。##
作用:
-
可以实现Java的跨平台
-
加载字节码文件