JDK和Java SDK的区别

Posted

技术标签:

【中文标题】JDK和Java SDK的区别【英文标题】:Differences between JDK and Java SDK 【发布时间】:2010-09-15 01:02:08 【问题描述】:

这两个术语之间有什么实质性区别吗?我了解 JDK 代表 Java Development Kit,它是 SDK(软件开发工具包)的一个子集。但是指定Java SDK,应该和JDK一样。

【问题讨论】:

【参考方案1】:

JDK是你需要write a java program的。

JRE 是您需要run a java program 所需要的。

由于JDKcontainsJRE可以下载JDK来编写和运行java程序。

JRE 包含 JVM,只要 JVM 安装在该操作系统上,Java 程序就可以在任何平台上运行(无需为其他平台重新编写或重新编译代码)。这就是 Java 广为人知的原因

Write Once(compile once) run anywhere.(WORA)

【讨论】:

【参考方案2】:

JDK 是 Java 的 SDK。

SDK 代表“软件开发工具包”,这是一种开发人员工具,可让人们更轻松、更有效、更高效地编写代码。 SDK 适用于各种语言。它们提供了大量的 API(应用程序编程接口),使程序员的工作变得轻松。

Java 开发工具包称为 JDK,即 Java 开发工具包。 所以说 SDK for Java 实际上是指 JDK。

假设您是 Java 新手,您会遇到另一个术语 - JRE,Java 运行时环境的首字母缩写。 当您尝试运行用 Java 编写的软件程序时,您需要 JRE。

Java 是一种独立于平台的语言。 JRE 运行 JVM,即 Java 虚拟机,它使您能够在 JVM 可用的任何平台上运行软件。

【讨论】:

请说明 JRE 在您的图表中的位置? JRE 很好地包含在 JDK 中,或者它可以是独立的,具体取决于您在做什么。它是运行时,因此当您构建应用程序时,它位于 JDK 中,但当您仅运行应用程序时,它是独立的,在这种情况下,此图没有多大意义。 你确定jdk是java的sdk吗?考虑到 java se,这可能是真的,但对于 java ee 和 java me,我只看到了 Oracle 提供的 SDK。那么,你真的确定吗? 图片在跟我说话 :)【参考方案3】:

取自 Java EE 6 SDK Installer,显示 SDK 6 除了 JDK 还包含什么:

【讨论】:

【参考方案4】:

是的,SDK 和 JDK 之间是有区别的。 大多数人忘记了Java平台不仅用于开发Java语言程序。 JVM 还支持其他一些语言。 因此,明确地说,SDK 是通用的软件捆绑包,支持使用各种语言(如 Clojure、Groovy、Scala、JRuby 等)创建软件。 JDK 是用 Java 语言开发软件的特定捆绑包,包含所有 Java 标准 API。 (我希望我解释得很好,因为我实际上不会说英语)

【讨论】:

【参考方案5】:

没有区别。

在 Sun 的营销部门对“tm”和术语感到疯狂之前,Java 软件开发工具包 (Java SDK) 曾经被称为 Java 开发工具包 (JDK)。出于政治原因和理智,他们将有意义的名称 (jdk) 和版本 (1.2 / 1.3 / 1.4 1.5 / 1.6) 称为“工程”术语。营销术语是“Java2 平台”(又名 jdk 1.2 到 1.4)或 Java5(又名 jdk 1.5)或 Java6(又名 jdk1.6)。想想就头疼。

【讨论】:

【参考方案6】:

来自wikipedia entry:

JDK 是一般意义上的软件开发工具包 (SDK) 的一个子集。在最近发布的 Java SE、EE 和 ME 的描述中,Sun 承认根据他们的术语,JDK 构成了负责编写和运行 Java 程序的 SDK 的子集。 SDK 的其余部分由额外的软件组成,例如应用程序服务器、调试器和文档。

“额外软件”似乎是 Glassfish、mysql 和 NetBeans。 This page 比较了您可以为 Java EE SDK 获得的各种包。

【讨论】:

SDK 是否在其包 - JDK“包”中包含(!)? JRE 包含在 JDK 中,是的。 JDK是一个软件开发工具包(SDK)。【参考方案7】:

我认为 jdk 具有可以与特定框架一起使用的某些功能。好吧,把它称为 SDK。

android 或 Blackberry 一样,它们都使用 java 及其框架。

【讨论】:

【参考方案8】:

JDK 附带了一组用于开发和运行 Java 程序的工具

它们包括:

    appletviewer(用于查看 Java 小程序)

    javac(Java 编译器)

    java(Java 解释器)

    javap(Java 反汇编程序)

    javah(用于 C 头文件)

    javadoc(用于创建 html 文档)

    jdb(Java 调试器)

而 SDK 附带许多其他工具,包括 JDK 中可用的工具。

http://parvindersingh.webs.com/apps/forums/topics/show/8853125-solved-java-difference-between-jdk-and-sdk-

【讨论】:

【参考方案9】:

JDK(Java 开发工具包)是一个 SDK(软件开发工具包)。

它用于在 Java 上构建软件/应用程序 当然,它还包括执行该软件的 JRE(Java 运行时版)。 如果您只想执行 Java 应用程序,只需下载 JRE。

顺便说一句,Java EE(企业版)包含“带有方法(函数)”的类包库,用于为 WEB 环境和 Java ME(微型版)构建移动设备的应用程序。如果您对它(Java ME)感兴趣,我建议您看看 Google 的 Android DevKit 和 API。

看看这里:它会解释更多.. http://www.oracle.com/technetwork/java/archive-139210.html

【讨论】:

【参考方案10】:

此问题的最佳示例,SDK - 软件开发工具包 - 例如:Netbeans JDK - Java 开发工具包。(这是 Java 编译器)。没有JDK,我们无法在SDK中运行java程序。

【讨论】:

【参考方案11】:

在我看来,Java 中的 JDK 和 SDK 没有区别。我们可以在它们中找到所有的开发工具和设施。只是sun提供的一个别名。

【讨论】:

【参考方案12】:

有两种产品JavaSE 和JavaEE。 EE是允许Web应用程序开发和运行的Web应用程序/企业版。 SE 是纯 Java 产品,其中没有 EE 细节,但它是 EE 的一个子集。 SE 有两种类型,JDK 和 JRE。

有一个很大的区别可能并不明显,我不确定它是否适用于所有操作系统,但在 Windows 下,JRE 没有服务器 HotSpot JVM,只有客户端一个,JDK 两者都有,而且据我所知,所有其他操作系统都有 JDK 和 JRE。 真正的区别是JDK包含Java编译器,即JDK允许您从源代码编译和运行Java,而JRE只允许运行Java字节码,即已经编译的Source。 是的,较新的版本捆绑了许多额外的组件,例如 NetBeans 编辑器环境和 Java 内存数据库 (derby/cloudscape),但这些都是可选的。

【讨论】:

【参考方案13】:

Sun 只是喜欢无缘无故地更改事物的名称。查看 SunOS/Solaris 的三种不同编号方案,或 Java 的两种编号方案。是 Java 1.6、Java 2 版本 6 还是 Java 6?

【讨论】:

【参考方案14】:

JDK 和 Java SDK 之间没有区别。两者的意思是一样的。我认为从 JDK 转换到 Java SDK 是 Sun 的公关决定。我认为它现在回到 JDK。

【讨论】:

【参考方案15】:

我最初的猜测是 Java SDK 用于构建 JVM,而 JDK 用于构建应用程序for JVM。

编辑:虽然目前这看起来是不正确的。 Sun 正在对 JVM 进行开源(也许他们现在已经完成了),所以如果我的答案确实正确,我不会太惊讶……但目前,SDK 和 JDK 是一回事。

【讨论】:

抱歉,构建 JVM 是什么意思? Java 应用程序在 Java 虚拟机中运行。 JRE 的一部分正在向公众开放,因此 Java SDK 将有助于人们为其平台构建 JRE。 抱歉,您从哪里得到这个声明(Java SDK 对人们为他们的平台构建 JRE 很有用)?我认为要么我不理解你,要么这不是 Java SDK 的目标。 Java SDK 由 JRE 和一些工具如 Javac、javap、javadoc ... 组成

以上是关于JDK和Java SDK的区别的主要内容,如果未能解决你的问题,请参考以下文章

JDK和Java SDK的区别

jdk和java虚拟机的区别

SDK和JDK的区别

JDK和JRE的区别?

POPTEST老李谈JVMJREJDKjava ee sdk with jdk区别

jdk和jre的区别