当前位置: 首页 > 后端技术 > Java

Java中的JRE、JDK、javac.exe、java.exe的区别以及Java的运行机制

时间:2023-04-01 18:03:45 Java

JRE和JDKJRE(JavaRuntimeEnvironment):Java运行环境是给程序使用者的,不是给开发者的。如果你只下载并安装了JRE,那么你的系统只能运行Java程序。它包含Java虚拟机(JVM)和Java的核心类库(JavaAPI),不包含开发工具(编译器、调试器等)。JDK(JavaDevelopmentKit):JavaDevelopmentKit,供程序开发者使用。包括Java运行环境(JRE)和Java开发工具(Java编译器javac.exe等工具)总结:简单的说,JRE是JDK的一个子集,一般安装JDK。安装后注意配置环境变量。一般在安装JDK后自动配置。对于JDK11及之后的版本,安装的jdk文件夹中不再有jre文件夹,但Java程序仍然可以运行。您还可以通过在cmd中键入java-version来检查JRE版本号。相关回答:java11之后是不是不需要jre了?Java语言跨平台原理JVM(JavaVirtualMachine):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(JavaVirtualMachine),使用类加载器将字节码文件(.class文件)加载到内存中,并解释成机器指令。执行:机器指令在JVM(Java虚拟机)中运行并输出结果。Java语言跨平台原则:Java程序不是直接运行的。Java编译器将Java源程序(.java文件)编译成平台无关的字节码文件(.class文件),然后Java解释器(java.exe)启动相应平台的Java虚拟机(JVM)进行解释并执行字节码文件(.class文件)。所以在不同的操作系统下,只需要安装不同的Java虚拟机就可以实现java程序的跨平台。无论是在Windows、Linux、MAC等系统上,只要安装了对应版本的JVM,JVM就可以将.cl??ass文件解释成机器指令执行。实现“一次编译,到处运行”。