JRE与JDK
- JRE(Java Runtime Environment):
Java运行环境,面向的是程序使用者,而不是开发者。如果你仅下载并装置了 JRE,那么你的零碎只能运行 Java 程序。其外部蕴含了Java虚拟机(JVM)和Java的外围类库(Java API),不蕴含开发工具(编译器、调试器等)。 - JDK(Java Development Kit):
Java开发工具包,面向程序开发者。其蕴含了Java运行环境(JRE)和Java开发工具(Java编译器javac.exe、及其它工具) 总结:
- 简略来说,JRE是JDK的子集,个别装置JDK即可。
- 装置后留神配置环境变量,个别装置JDK后主动配置好。
- JDK11版本及当前,装置完的jdk文件夹中不再有jre文件夹,然而依然能够运行Java程序,cmd中输出java -version也能查到JRE的版本号。相干解答:java 11当前不须要jre了么?
Java语言跨平台原理
- JVM(Java Virtual Machine):
Java虚拟机 - Java编译器(javac.exe):
是将java源程序(.java文件)编译成中间代码字节码文件(.class文件)。字节码文件还不是机器能间接运行的文件。 javac.exe 编译后失去的 .class 文件是二进制指令,但不是机器指令,而是 Java 虚拟机可辨认的指令。 - Java解释器(java.exe):
启动 JVM(Java虚拟机),将 .class 文件一行一行地解释成机器指令执行(由 Java 虚拟机对字节码进行解释和执行)。 Java运行机制:
- 编译:应用Java编译器(javac.exe)命令,将java源程序(.java文件)编译成字节码文件(.class文件)。
- 解释:应用Java解释器(java.exe)命令,启动JVM(Java虚拟机),应用类加载器将字节码文件(.class文件)加载到内存中,解释成机器指令。
- 执行:机器指令在JVM(Java虚拟机)中运行并输入后果。
- Java语言跨平台原理:
Java程序并非是间接运行的,Java编译器将Java源程序(.java文件)编译成与平台无关的字节码文件(.class文件),而后由Java解释器(java.exe)启动绝对应平台的Java虚拟机(JVM)对字节码文件(.class文件)解释执行。
所以在不同的操作系统下,只需装置不同的Java虚拟机即可实现java程序的跨平台。无论是在Windows、Linux、MAC等零碎上,只有装有相应版本的 JVM,该JVM 就能把 .class 文件解释成机器指令执行。实现“一次编译,随处运行”。