SDK是Software Development Kit的缩写,中文意思是“软件开发工具包”。这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。SDK是一系列文件的组合,它为软件的开发提供一个平台(它为软件开发使用各种API提供便利)。
JDK(Java Development Kit,Java开发工具包)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。可以认为jdk只是sdk的一种(子集),因为它是开发java程序的一个平台,开发其他程序的sdk可以没有jdk。比如你下载了一个软件开发平台 eclipse-SDK-3.2.2-win32.zip,它本身里面是没有jdk的。但是只要开发java程序就必须使用jdk(javaee和javase)。
来打个比方吧:SDK就像一台机床(它可以是多用途的),它可以生产ABC等工件;当我们要生产A时,就给机床换上生产A的刀具a;当我们要生产B时就换上生产B的刀具b;当我们要生产C时就换上生产C的刀具c;当我们要用机床(SDK)生产java程序时,我们就给机床换上刀具jdk,于是就把安装了jdk的SDK叫做java SDK.
JavaEE是专门为企业级应用提供的一个开发工具包,它里面已经包含了许多开发企业级应用所需要的“组件”,它为J2EE的开发提供了一个便利的开发平台,所以它就直接叫JavaEE SDK了。不知道说明白了没有,都是些概念性的东西,其实你也可以理解jdk就是java SDK。