java - Jvm 自带 JDK 或者默认自带 os

标签 java

我对 JVM 有一些困惑。它是附带操作系统还是JDK,因为我读过很多书,它附带JDK,但JVM不是平台独立的,这意味着它附带操作系统。有人可以消除我的疑问吗?

最佳答案

将 JVM/JRE/JDK 想象成一辆汽车:

JVM(Java虚拟机)是汽车的引擎。它是使汽车行驶的重要部件。与 Java 类似,JVM 是可以运行 Java 字节码的引擎。它是 Java 字节码与计算机操作系统和硬件之间的接口(interface)。

JRE(Java 运行时环境)是汽车的其余部分。为了能够驾驶汽车,您需要的不仅仅是引擎(JVM)。您需要底盘、轮子、方向盘、踏板等。JRE 提供了 JVM 周围的一切,例如运行 Java 程序所需的库和工具。

JDK(Java 开发工具包)在 JRE 之上提供了您编写自己的 Java 程序时所需的额外工具。它包含从源代码创建 Java 类文件所需的 Java 编译器和其他工具。

在 Oracle 网站上,您可以下载 JRE 或 JDK。

如果您是最终用户,并且只需要运行其他人为您创建的 Java 程序,那么 JRE 就是您所需要的。它是一辆完整的汽车 - 它包括 JVM(汽车的引擎)。

如果你是一名程序员并且你想编写自己的Java程序,那么你需要JDK。 Oracle的JDK包包括JVM和JRE,以及Java编译器和其他开发工具。

JVM 由 Oracle 提供(或者由另一方提供,如果您使用的 Java 实现与 Oracle 不同)。它通常不包含在操作系统中。

关于java - Jvm 自带 JDK 或者默认自带 os,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43949665/

相关文章:

java - 在 Java 中翻转图像时遇到问题

java - 在解析之前重写 solr 查询

java - SQL 语句失败,即使数据库中有实体

java - Android 上的 File、FileReader、BufferedReader 返回 null

java - 在 Linux 上部署到 Tomcat 时出现 JSF PropertyNotFound

Java:KeyLIstener 和 PaintComponent 不合作

java - 从 PHP 与 shell 调用 Java - java.lang.NoClassDefFoundError :

java - 有没有一种优雅的方法可以在使用 Guava 转换 Collection 时删除空值?

java - ehcache监视器: installation/configuration

java - Spring Web应用程序内存分析的疑惑