Is there any substantial difference between those two terms?. I understand that JDK stands for Java Development Kit that is a subset of SDK (Software Development Kit). But specifying Java SDK, it should mean the same as JDK.
From this wikipedia entry:
The JDK is a subset of what is loosely defined as a software development kit (SDK) in the general sense. In the descriptions which accompany their recent releases for Java SE, EE, and ME, Sun acknowledge that under their terminology, the JDK forms the subset of the SDK which is responsible for the writing and running of Java programs. The remainder of the SDK is composed of extra software, such as Application Servers, Debuggers, and Documentation.
The "extra software" seems to be Glassfish, MySQL, and NetBeans. This page gives a comparison of the various packages you can get for the Java EE SDK.
“额外的软件”似乎是Glassfish、MySQL和NetBeans。这个页面提供了对Java EE SDK的各种包的比较。
Yes, there is a difference between the SDK and the JDK. Most of people forget that Java Platform is not only used to develop programs in Java language. The JVM supports some other languages also. Thus, making it clear, the SDK is the generic bundle of software that supports software creation in a variety of languages like Clojure, Groovy, Scala, JRuby, and others. The JDK is the specific bundle to develop software in Java language, containing all Java standard API to do so. (I hope I've explaned it well, since I actually do not speak english)
JDK is the SDK for Java.
SDK stands for 'Software Development Kit', a developers tools that enables one to write the code with more more ease, effectiveness and efficiency. SDKs come for various languages. They provide a lot of APIs (Application Programming Interfaces) that makes the programmer's work easy.
The SDK for Java is called as JDK, the Java Development Kit. So by saying SDK for Java you are actually referring to the JDK.
Assuming that you are new to Java, there is another term that you'll come across- JRE, the acronym for Java Runtime Environment. JRE is something that you need when you try to run software programs written in Java.
Java is a platform independent language. The JRE runs the JVM, the Java Virtual Machine, that enables you to run the software on any platform for which the JVM is available.
Taken from the Java EE 6 SDK Installer, shows what SDK 6 contains besides JDK:
从Java EE 6 SDK安装程序中，可以看到除了JDK之外的SDK 6:
The JDK (Java Development Kit) is an SDK (Software Dev Kit).
It is used to build software/applications on Java and of course it includes the JRE (Java Runtime Edition) to execute that software. If you just want to execute a Java application, download only the JRE.
By the way, Java EE (Enterprise Edition) contains libraries of packages of classes "with methods (functions)" to build apps for the WEB environment and Java ME (Micro Edition) for mobile devices. If you are interested in it (Java ME) I would recommend to take a look at Google's Android DevKit and API.
顺便说一下，Java EE (Enterprise Edition)包含了类的包库，“带有方法(函数)”用于为WEB环境构建应用程序，Java ME (Micro Edition)用于移动设备。如果您对它感兴趣(Java ME)，我建议您看看谷歌的Android DevKit和API。
Take a look here: it's gonna explain bit more.. http://www.oracle.com/technetwork/java/archive-139210.html
看看这里:它将解释更多。http://www.oracle.com/technetwork/java/archive - 139210. - html
Sun just likes changing the names of things for no apparent reason. Look at the three different numbering schemes for SunOS/Solaris, or the two numbering schemes for Java. Is is Java 1.6, Java 2 Version 6, or Java 6?
Sun只是喜欢毫无理由地改变事物的名称。看看SunOS/Solaris的三种不同的编号方案，或者Java的两种编号方案。Java 1.6、Java 2版本6还是Java 6?
There's no difference between JDK and Java SDK. Both of them mean the same thing. I think it was a PR decision at Sun to change over from JDK to Java SDK. I think its back to JDK for now.
JDK和Java SDK之间没有区别。它们的意思是一样的。我认为这是Sun的公关决定，从JDK转换到Java SDK。我想现在该回到JDK了。
In my point of view there is no difference between JDK and SDK in java. We can find all development tools as well as facilities in both of them. it is just an alias provided by sun.
Best example for this Question, SDK - Software Development Kit - Ex: Netbeans JDK - Java Development Kit.(This is Java compiler). Without JDK, we unable to run java programs in SDK.
这个问题最好的例子，SDK -软件开发工具包- Ex: Netbeans JDK - Java开发工具包。(这是Java编译器)。没有JDK，我们无法在SDK中运行java程序。
The JDK comes with a collection of tools that are used for developing and running Java programs,
appletviewer (for viewing Java applets)
javac (Java compiler)
java (Java interpreter)
javap (Java disassembler)
javah (for C header files)
javadoc (for creating HTML documents)
jdb (Java debugger)
Whereas, the SDK comes with many other tools also including the tools available in JDKs.
I think jdk has certain features which can be used along with particular framework. Well call it SDK as a whole.
Like Android or Blackberry both use java along with their framework.
There is no difference.
The Java Software Development Kit (Java SDK) used to be called the Java Development Kit (JDK) before the marketing department at Sun got crazy with the "tm" and terminology. For political reasons & for sanity, they call the meaningful names (jdk) & versions (1.2 / 1.3 / 1.4 1.5 / 1.6) "engineering" terms. The marketing terms are "Java2 platform" (aka jdk 1.2 thru 1.4) or Java5 (aka jdk 1.5) or Java6 (aka jdk1.6). I'm getting a headache just thinking about it.
Java软件开发工具包(Java SDK)曾经被称为Java开发工具包(JDK)，在Sun的市场部门疯狂使用“tm”和术语之前。出于政治原因和理智的考虑，他们调用有意义的名称(jdk)和版本(1.2 / 1.3 / 1.4 / 1.5 / 1.6)“工程”。营销术语是“Java2平台”(即jdk 1.2到1.4)或Java5(即jdk 1.5)或Java6(即jdk1.6)。我一想到这件事就头疼。
My initial guess would be that the Java SDK is for building the JVM while the JDK is for building apps for the JVM.
Edit: Although this looks to be incorrect at the moment. Sun are in the process of opensourcing the JVM (perhaps they've even finished, now) so I wouldn't be too surprised if my answer does become correct... But at the moment, the SDK and JDK are the same thing.
There are two products JavaSE and JavaEE. EE is the web application/enterprise edition that allows the development and running of web application. SE is the plain Java product that has no EE specifics in it, but is a subset of EE. The SE comes in two types a JDK and a JRE.
There is one big difference that may not be obvious, and I am not sure if it applies to all Operating Systems but under Windows the JRE does not have the server HotSpot JVM, only the client one, the JDK has both, and as far as I know all other OS's have both for the JDK and the JRE. The real difference is the the JDK contains the Java compiler, that is the JDK allows you to compile and run Java from source code where as the JRE only allows the running of Java byte code, that is Source that has already been compiled. And yes newer versions bundle a number of extra components, such as NetBeans editor environment and Java in memory Database (derby/cloudscape), but these are optional.
有一个很大的区别,可能不太明显,而且我不确定如果它适用于所有操作系统但在Windows JRE没有服务器HotSpot JVM,只有客户端,JDK既有,据我所知所有其他操作系统的JDK和JRE。真正的区别在于JDK包含Java编译器，即JDK允许您从源代码编译和运行Java，而JRE只允许运行Java字节代码，即已经编译的源代码。是的，较新的版本捆绑了许多额外的组件，比如NetBeans编辑器环境和内存数据库中的Java (derby/cloudscape)，但是这些组件是可选的。