JDK和Java SDK之间的区别


85

这两个术语之间有什么实质性区别?我了解JDK代表Java开发工具包,它是SDK(软件开发工具包)的子集。但是指定Java SDK时,其含义应与JDK相同。

Answers:


97

从这个维基百科条目

JDK是广义上的软件开发工具包(SDK)的子集。在最近的Java SE,EE和ME版本中,Sun承认在其术语下,JDK构成了SDK的子集,该SDK负责编写和运行Java程序。SDK的其余部分由其他软件组成,例如应用程序服务器,调试器和文档。

“额外的软件”似乎是Glassfish,MySQL和NetBeans。该页面比较了您可以从Java EE SDK获得的各种软件包。


SDK是否在其程序包-JDK“程序包”中包含(!)?
Royi Namir 2014年

JRE包含在JDK中,是的。JDK是一个软件开发工具包(SDK)。
jamesh

33

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


25

JDK是Java的SDK。

SDK代表“软件开发套件”,这是一种开发人员工具,使人们能够更加轻松,有效和高效地编写代码。SDK提供了多种语言。它们提供了许多使程序员的工作变得容易的API(应用程序编程接口)。

在此处输入图片说明

Java SDK称为Java开发工具包JDK。因此,说到Java SDK就是指JDK。

假设您是Java的新手,那么您会遇到另一个术语-JRE,它是Java Runtime Environment的缩写。尝试运行用Java编写的软件程序时,需要使用JRE。

Java是与平台无关的语言。JRE运行JVM,即Java虚拟机,它使您能够在JVM可用的任何平台上运行软件。


1
请弄清楚JRE在图中适合什么位置?
vikramvi

JRE在JDK中很好用,或者它可以是独立的,具体取决于您正在做什么。它是运行时,因此当您构建应用程序时,它就位于JDK中,但是当您仅运行应用程序时,它是独立的,在这种情况下,此图没有太大意义。
raj240

您确定jdk是Java的sdk吗?考虑到java se,这可能是正确的,但是对于java ee和java me,我只看到Oracle提供的SDK。那么,您真的确定吗?
user12208242

5

从Java EE 6 SDK安装程序中获取,显示了除JDK之外SDK 6还包含的内容:

除了JDK,SDK 6还包含什么


3

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


3

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





1

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


1

没有区别。

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


0

我认为jdk具有某些可以与特定框架一起使用的功能。整体上称为SDK。

像Android或Blackberry一样,它们都使用Java及其框架。


-1

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

编辑:尽管目前看来这是不正确的。Sun正在开放JVM的外包过程中(也许它们现在已经完成了),所以如果我的回答确实正确,我也不会感到惊讶...但是目前,SDK和JDK是同一件事。


抱歉,构建JVM是什么意思?
胡安·卡洛斯·布兰科·马丁内斯

Java应用程序在Java虚拟机中运行。JRE的一部分已向公众开放,因此Java SDK对于人们为其平台构建JRE很有用。
奥利(Oli)

抱歉,您从何处获得此声明(Java SDK对人们为其平台构建JRE有用)?我认为我不了解您,或者那不是Java SDK的目标。Java SDK的由JRE和一些工具如javac的,javap的,javadoc中......形成
胡安·卡洛斯·布兰科·马丁内斯

-1

有两种产品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),但是这些是可选的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.