轻松熊喵喵个人笔记 -- JDK、SDK和JRE等等的区别
起因
有次刚接触编程的小伙伴会问我:“熊啊,我想用Android studio写一个安卓APP,可是我不知道该怎么做呀,我下载了最新的Android Studio,然后就双击安装了,然后照着网上什么环境变量修改设置等等各种操作,然后感觉搞得很乱。原因是什么东西安装在哪里,有什么作用,甚至叫这个名字是为什么都不知道,你能帮我搞定么?”
的确,我刚接触之初的时候也是只想立刻写出一个APP,然后得到一些成就感。可能对于这些各种名称和作用暂时没有了解,叫小伙伴帮我配置好环境后,回头也懒得去了解了。这些直到我重新装机。。。
JDK、SDK和JRE的概念解析
首先先了解一下,JDK、SDK和JRE等等的区别吧!
先来一句干货。JDK为包含JRE,下载JDK之后就不用再去下载JRE了。
JDK
就是java开发工具包,这个包中提供了java语言的类库,也就是你要用java语言编写各种东西,那么电脑上必须装最新版本的jdk咯。
SDK
英文意思就是soft development kit (软件开发包),我们在说sdk时,一定要在前面加上一个定语或者形容词什么的。比如谁谁谁的sdk。在安卓开发中就是android sdk,在unity接入各种平台时,那么就需要用到各种平台的sdk包等等。
SDK就是指可以为第三方开发者提供特定的软件包、软件框架、硬件平台、操作系统等创建应用软件开发工具的集合,并且SDK还能简单的为某个程序设计语言提供应用程序接口API的一些文件。
因此如果你只说SDK,范围太大,我还是不知道你到底表达什么意思,但是如果你前面加上andorid,我就知道你说的是安卓开发工具包,如果你前面加上百度移动广告接入,那么我就知道你说的是百度移动广告接入的插件包。
android sdk
相当于安卓机器的操作系统,类似与windows操作系统,其也有版本号,我现在用的版本号是23 ,没有android sdk开发包的支持,就无法进行android开发。
Android Studio为什么要引入jdk,不装jdk不是也可以编译程序吗?
首先你要明确这两个区别。
jdk:java develop kits
jre:java runtime enviement
Android Studio不装jdk是可以进行编译的,比如一些简单的程序什么的,封装一些APP也是可以的。原因是在你安装的时候,Android Studio已经自动安装并生成了相应的编译的程序。这些程序在哪里呢?如图所示:
这个里面可以直接安装sdk咯。
很多的选择可供安装而不需要去专门下载。但是有朋友估计会问,编译文件的jre呢?
Android Studio在安装的时候已经是可以编译简单的程序,该有的东西已经都!有!了!!!
同类软件eclipse也是一样的,只安装jre就可以了,jdk中编译java源程序的工具是javac,但是eclipse使用的不是javac!eclipse的JDT用的是自己写的编译器,对javac没有任何依赖关系,这一直是Eclipse一件自豪的事情呢!而且仔细观察的话tools.jar包里面也有包含com.sun.tools.javac.Main哦!
其实这也没什么好奇怪的,编译这项工作不一定非要交给jdk不可,正如tomcat能够编译jsp一样。
但jdk是编译运行java类文件必须的工具。不仅如此,接触SSM(Spring+SpringMVC+MyBatis)的小伙伴也清楚,在前后端数据库的传输过程中,也是需要jdk来作为支持。tomcat是一种web服务中间件,运行jsp不需要tomcat,但必须要有jdk,如果是开发jsp和发布jsp的产品需要用到web中间件了。
那么,制作游戏的软件unity为什么要引入jdk?回答也很简单,unity导出安卓应用,安卓应用又需要用到java语言,java语言又需要底层的java类库,这写类库就被封装在JDK中。
有些人会问,unity为什么要引入jdk?回答很简单,unity导出安卓应用,安卓应用又需要用到java语言,java语言又需要底层的java类库,这写类库就被封装在JDK中。
总结
总而言之,jdk是编译运行java类文件一个挺重要的工具,如果编写比较复杂的程序,而且需要多种软件工具相互配合时,那就还是安装jdk为好,可以省下处理各种冲突和报错的时间来优化程序。
此文章借鉴了一些大牛的经验,分别是
海涛高软 的文章:“SDK和JDK区别”,他的原文链接:https://blog.csdn.net/qq_15267341/article/details/51791304