乐趣区

关于java:Java中JREJDKjavacexejavaexe的区别及Java运行机制

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、及其它工具)
  • 总结:

    1. 简略来说,JRE 是 JDK 的子集,个别装置 JDK 即可。
    2. 装置后留神配置环境变量,个别装置 JDK 后主动配置好。
    3. 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 运行机制:

    1. 编译:应用 Java 编译器(javac.exe)命令,将 java 源程序 (.java 文件) 编译成字节码文件(.class 文件)。
    2. 解释:应用 Java 解释器(java.exe)命令,启动 JVM(Java 虚拟机),应用 类加载器 将字节码文件 (.class 文件) 加载到内存中,解释成机器指令。
    3. 执行:机器指令在 JVM(Java 虚拟机)中运行并输入后果。
  • Java 语言跨平台原理:
      Java 程序并非是间接运行的,Java 编译器将 Java 源程序 (.java 文件) 编译成与平台无关的字节码文件 (.class 文件),而后由 Java 解释器(java.exe)启动绝对应平台的 Java 虚拟机(JVM)对字节码文件(.class 文件) 解释执行。
      所以在不同的操作系统下,只需装置不同的 Java 虚拟机即可实现 java 程序的跨平台。无论是在 Windows、Linux、MAC 等零碎上,只有装有相应版本的 JVM,该 JVM 就能把 .class 文件解释成机器指令执行。实现“一次编译,随处运行”。
退出移动版