简单的说sdk更底层,IDE是sdk+图形界面开发环境。
先来说windows sdk的概念:
微软
每推出一个重要的windows版本,一般都会同时推出一个SDK(Software Development Kit)。SDK包含了开发该windows版本所需的windows函数和常数定义、API函数说明文档、相关工具和示例。SDK一般使用C语言,但不包括
编译器
。高版本VC++包括了SDK所有的头文件、帮助、示例和工具,不需要再安装SDK,低版本如VC++5.0则需要安装SDK
从上面这段话看出,windows sdk就是windows这个OS的API+文档+other。
sdk不包括编译器
。
那linux的sdk就是linux api + other, 编译器是gcc或者g++
java中的jdk就是一种sdk。这个sdk是相当于java虚拟机这台机器。把虚拟机看成一台机器+OS。java api在这个虚拟机和OS之上。
jre就是虚拟机+java平台核心类。可以理解为虚拟机这台设备+虚拟机上的OS。然后这个OS会对外提供一些API,当然这个OS还可以跑java程序。
(准确的说jre相对于sdk,jdk是sdk加开发工具(编译器javac,打包工具))
===
引文:
JDK是java开发工具包;JDK最早叫Java Software Develop Kit(Java SDK),后来改名为JDK,即Java Develop Kit。JDK作为Java开发工具包,主要用于构建在Java平台
上运行的应用程序、Applet 和组件等。
IDE是集成开发环境 。
装了JDK 不需要装其他IDE就可以写程序了
(可以用记事本等工具写JAVA程序),不过效率实在不高,可以选择jcreator,jbuilder,eclipse等IDE工具 写程序,以及进行编译等其他工作,这样效率比较高,很方便;
===
通过引文是不是可以这样理解:有sdk不用IDE也可以写程序,然后编译。那编译器呢,编译器总得有吧。
看网络上一句:1、JDK包含一个java的编译器 当然如Eclipse本身也提供了自己的编译器实现。
说明jdk是sdk+编译器。
所以不能说有了sdk就可以编译程序了
。
所以对于linux的c编程,还需要安装gcc,那linux的sdk是什么,在哪里。其实window的sdk除了文档我们也是不能轻易看不到os的API的,如果找api,这是编译器的工作了。
所以,总结来说,sdk可以理解为.h 和.lib文件。我们想使用os的api就要用到这些api的.h和.lib.
而 SDK 正是提供了一整套开发 Windows 应用程序所需的相关文件、范例和工具的“工具包”。
由于 SDK 包含了使用 API 的必需资料,所以人们也常把仅使用 API 来编写 Windows 应用程序的开发方式叫做“SDK 编程”。而 API 和 SDK 是开发 Windows 应用程序所必需的东西,所以其它编程框架和类库都是建立在它们之上的,比如 VCL 和 MFC,虽然他们比起“SDK 编程”来有着更高的抽象度,但这丝毫不妨碍它们在需要的时候随时直接调用 API 函数。
用VC编写Windows程序有两种:1. Windows c方式(SDK),2. C++方式:即对SDK函数进行包装,如VC的MFC,BCB的VCL等。SDK编程就是直接调用Windows的API进行编程,平时人们常说”用SDK写程序”就是指用Windows的API函数来写程序,API由上千个API函数组成(Win95的API有两千多个)。而MFC是API的封闭,结合面向对象程序设计的继承性和多态性组成一个个的”类”,共由一百多个类组成。尽管MFC比SDK方便,但要深入VC,直接去学MFC却是不明智的选择。只有在熟悉了MFC的运行机制的情况下,才有可能深入下去。所以学VC最好是先学用SDK编写程序,在此期间掌握Windows操作系统的工作原理和各API函数的应用,然后再深入MFC。
所以有本书叫windwos sdk编程,就是讲的用windows的api直接去编程。
===
JRE:
(我现在的理解,不一定对。JDK和jre的区别,jre就是指虚拟机,jdk包括jre, 因为我们安装完jdk,jre也就有了。
如果只需要运行java程序,那只安装jre就可以了,如果是开发者,那就得安装JDK。JDK里包含的开发程序:编译工具(javac),打包工具(jar.exe).既然是用于开发,那编译完了肯定需要运行,所以JDK必然包括jre(虚拟机)
)
引文:
JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含Java虚拟机、Java平台核心类和支持文件。 JRE=JVM+Runtime Interpreter+others,Java运行环境的三项主要功能:加载代码:由class loader 完成 ;校验代码:由bytecode verifier完成;执行代码:由runtime interpreter完成。 基础类库
JRE自带的基础类库主要是JRE\lib\rt.jar这个文件,包括了Java2平台标准版的所有类库。
类库的查找方法和版本管理
JRE中由ClassLoader负责查找和加载程序引用到的类库,基础类库ClassLoader会到rt.jar中自动加载,其它的类库,ClassLoader在环境变量CLASSPATH指定的路径中搜索,按照先来先到的原则,放在CLASSPATH前面的类库先被搜到,Java程序启动之前建议先把PATH和CLASSPATH环境变量设好,OS通过PATH来找JRE,确定基础类库rt.jar的位置,JRE的ClassLoader通过CLASSPATH找其它类库。但有时候会出现这样的情况,希望替换基础类库中的类库,那么也可以简单的通过-Djava.endrosed.path=…参数传递给java.exe,于是ClassLoader会先于基础类库使用java.endrosed.path参数指定路径的类库。因此Java的版本管理是非常简单有效的,也许很原始,不过很好用,简单就不容易出错。
===
jre和jdk的区别:
JDK和jre的区别,jre就是指虚拟机,jdk包括jre, 因为我们安装完jdk,jre也就有了。
如果只需要运行java程序,那只安装jre就可以了,如果是开发者,那就得安装JDK。JDK里包含的开发程序:编译工具(javac),打包工具(jar.exe).既然是用于开发,那编译完了肯定需要运行,所以JDK必然包括jre(虚拟机)
)
===
这里有个个人总结,写的很好,