JDK / JRE / JVM / Java SDK |这些都意味着什么?有时您可以使用JRE进行开发,有时您需要JDK?

时间:2010-02-16 23:45:30

标签: eclipse javac java

说实话,我对所有这些术语(JDK / JRE / Java SDK)感到很困惑。我不确定每个人做了什么。

当我第一次在eclipse中开始做简单的java示例时,我很确定我只有JRE,我认为这是普通用户能够在其系统上运行java程序/ applet的默认java安装程序。

然而,现在我们在课堂上使用Google Appengine,这需要我猜的JDK与Java SDK相同。在浪费一些时间发现安装JDK意味着我还必须将java / bin添加到环境变量以使javac -version在命令提示符下工作我发现只有JDK有javac ......

我的早期java程序如何在没有安装JDK的情况下工作,因此没有javac?确实是主要的问题...... JRE和JDK之间有什么区别,你什么时候使用它们?

谢谢:)

5 个答案:

答案 0 :(得分:35)

JRE = Java运行时环境 - 运行需要Java的程序/软件或使用Java编写的库所需的内容。例如,OpenOffice需要Java Runtime Environment

JDK / Java SDK = Java开发工具包/ Java软件开发工具包 - 您需要编写需要Java的程序或使用Java编写的库。例如,如果您要用Java编写自己的文字处理工具。

java随JRE一起提供,因为它启动了VM(虚拟机)。它可以接收class个文件,这些文件是使用JDK编译的文件。

JDK附带javac,因为您需要将.java文件编译成可以在JRE上运行的.class文件。

答案 1 :(得分:17)

Eclipse有自己的内置编译器(称为ecj),这可能是你没有安装JDK就可以使用它的原因。它不使用javac

Google App Engine使用JDK附带的javac

答案 2 :(得分:3)

  

JRE和JDK之间有什么区别?你什么时候使用它们?

JRE :Java运行时环境。它仅用于运行Java程序。正如Chris Jester -Young提到的那样,Eclipse有一个内置的编译器。这就是为什么你只需要JRE(运行eclipse)

如果您运送Java程序,客户端唯一需要的是运行时环境

JDK :Java Develpment Kit,其中还包含一个JRE,但还有其他用于程序开发的工具,例如java编译器 javac 等等。

如果你想创建java程序,你应该使用它。

答案 3 :(得分:2)

您无法使用JRE编译Java程序。 Java编译器javac只附带JDK。

  • 你可以用任何文本编辑器编写Java程序,你不需要做任何特殊的事情。
  • 您需要JRE来运行Java程序。 JRE包括运行已编译的Java程序所需的Java虚拟机。
  • 您需要JDK来编译Java程序。因此,如果您是Java开发人员,除了Java虚拟机之外,您可能只想安装JDK,因为它附带了编译所需的工具。

答案 4 :(得分:1)

'有时你可以用jre'

开发

没有。从不。

使用Java Development Kit进行开发。您可以使用Java运行时环境或引擎或其所谓的任何内容运行。