27

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

当我第一次开始在 Eclipse 中做简单的 Java 示例时,我很确定我只有 JRE,我相信这是普通用户用来在他们的系统上运行 Java 程序/小程序的默认 Java 安装程序。

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

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

谢谢 :)

4

5 回答 5

35

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

JDK/Java SDK = Java Development Kit/Java Software Development Kit -编写需要 Java 的程序或使用 Java 编写的库所需的东西。例如,如果您要使用 Java 编写自己的文字处理工具。

javaJRE 附带,因为它启动 VM(虚拟机)。它可以接收class使用 JDK 编译的文件。

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

于 2010-02-16T23:47:06.247 回答
17

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

Google App Engine 使用javacJDK 自带的。

于 2010-02-16T23:50:51.137 回答
3

JRE 和 JDK 有什么区别,什么时候使用它们?

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

如果你发布一个 Java 程序,客户端唯一需要的就是这个运行时环境

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

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

于 2010-02-17T00:37:33.607 回答
2

您无法使用 JRE 编译 Java 程序。javac,Java 编译器,仅随 JDK 一起提供。

  • 你可以用任何文本编辑器编写 Java 程序,你不需要任何特殊的东西来做到这一点。
  • 您需要 JRE 来运行 Java 程序。JRE 包括运行已编译的 Java 程序所需的 Java 虚拟机。
  • 您需要 JDK 来编译 Java 程序。因此,如果您是 Java 开发人员,您可能只想安装 JDK,因为除了 Java 虚拟机之外,它还附带编译所需的工具。
于 2010-02-16T23:52:46.147 回答
1

'有时你可以用 jre 开发'

没有永不。

您使用 Java 开发工具包进行开发。您使用 Java Runtime Environment 或 Engine 或其他任何名称运行。

于 2010-02-17T05:08:39.740 回答