JRE和JVM有什么区别?

时间:2010-05-11 16:35:51

标签: jvm java

我认为JVM与.NET Framework类似,对吗?然后什么是JRE?

谢谢!

12 个答案:

答案 0 :(得分:90)

Java Runtime Environment包含JVM,类库和其他支持文件。

它不包含任何开发工具,如编译器,调试器等。

实际上JVM运行程序,它使用类库和其他

支持JRE中提供的文件。

  

JRE = JVM + Java包类(如util,math,lang,awt,swing   等)+运行时库。

如果要运行任何Java程序,则需要在系统中安装JRE。

JRE是框,JVM是框的内容。

简单来说就是JRE = JVM + rt.jar

其中rt.jar包含lang,util,awt,swing,math等库或用于编译的.class文件 运行我们的程序。

了解有关JVM与JRE之间差异的更多信息 - CLICK HERE

答案 1 :(得分:35)

JRE是虚拟机运行的环境。

JRE - JAVA运行时环境

JVM - JAVA虚拟机

JRE是容器,JVM是内容。

答案 2 :(得分:12)

首先,JDK包含JRE +开发工具,JRE包含JVM +类库,其中JVM包含(类加载器和字节代码验证器)和执行引擎(解释器和JIT)。

编译器会将源代码转换为中间字节代码。如果将此字节代码提供给JVM以供执行,则JVM中的类加载器将加载字节代码并与JRE提供的类库进行链接。

然后,代码将被提供给JVM中的执行引擎,该引擎解释未重复的代码并编译重复的代码(例如循环),最终转换为机器代码(目标代码)。然后它将机器代码提供给微处理器执行。

答案 3 :(得分:6)

通俗地说: -

JDK = JRE +开发/调试工具,其中JDK是我们使用Java的完整包,从创建编译到运行它。另一方面,JRE只是运行代码(字节代码)。

注意: - 无论我们是安装JDK还是JRE,JVM都会与这两个软件包捆绑在一起,而JVM是JIT编译器将字节代码转换为机器特定代码的部分。

JVM is Java Virtual Machine -- the JVM actually runs Java bytecode.
JDK is Java Developer Kit -- the JDK is what you need to compile Java source code.
JRE is Java Runtime Environment -- is what you need to run a Java program and contains a JVM, among other things.

答案 4 :(得分:5)

这个问题的简单答案是 JRE JVM 的超集。

也就是说,用java编译器(javac)编译的代码产生字节代码(.class文件)。 jre是 jdk 的子集,包含所需的库以及 jvm 。 jvm运行字节代码并生成机器可读形式的机器代码,并支持该代码所需的库。

要查看jvm的配置,请转到: C:\ Program Files \ Java \ jre7 \ lib \ i386 \ jvm.cfg
此文件包含可用作java,javac等选项的JVM列表。

答案 5 :(得分:3)

JRE包含JVM,它实际上解释字节代码并运行程序。为此,JVM使用JRE提供的库和其他文件。

我相信你会说JRE就像.NET Framework,而JVM就像.NET CLR。这里可能存在一些重要的差异,但我并不知道。

答案 6 :(得分:2)

JRE 是一个环境,以便在本地执行任何Java程序。

JVM 是负责将字节码转换为特定于机器的代码并使java程序在任何地方一次性写入的地方。

答案 7 :(得分:1)

JVM是运行Java代码的过程,JRE是分发的所有文件,形成JVM运行的“环境”。

答案 8 :(得分:1)

JVM - java virtual machine is a specification for a run-time environment to execute byte code. JRE - java runtime environment is the implementation of jvm JDK - java developement kit, it's JRE + developement tools.

JRE has all the class libraries can support java application. When a java application is about to execute JRE will create JVM instance, which will actually runs the java application.

答案 9 :(得分:1)

JRE和JVM是JDK的一部分。 jdk = jre(包含JVM)+开发工具。

JVM是规范,并且JVM Implementaion的名称是Hotspot或其他名称,由不同组织实现。

答案 10 :(得分:0)

根据Wikipedia

  

JVM是'JRE'(Java运行时环境)的实例,在执行Java程序时开始运行。执行完成后,此实例将被垃圾回收。 JIT是JVM的一部分,用于加速执行时间。 JIT同时编译具有类似功能的部分字节代码,因此减少了编译所需的时间。

答案 11 :(得分:0)

Java虚拟机( JVM )是驻留在您的计算机上的抽象虚拟机(基本上是程序),并为Java字节码(编译后的程序代码)提供了运行时环境,以获取被执行。

JVM分析字节码,对其进行解释,然后执行相同的字节码以显示输出。

JVM的基本功能是执行已编译的.class文件(即字节码)并生成输出。请注意,每个操作系统都有不同的JVM,但是在所有操作系统上生成的字节码输出都是相同的。这意味着在Windows操作系统上生成的字节码也可以在Linux操作系统上运行,反之亦然,从而使Java成为平台无关的语言。

因此,我们可以说JVM执行以下操作:

  1. 加载所需的.class和jar文件
  2. 分配参考和验证代码
  3. 执行代码
  4. 为Java字节码提供运行时环境

JRE (Java运行时环境)是JVM,它是开发与JVM兼容的程序所需的开发工具。

enter image description here

签出article to learn more about JVM