三、深刻分析JDK的安装与配置

三、深刻分析JDK的安装与配置配置

咱们在前两篇文章中分别向你们通俗易懂的介绍了什么是Java,以及有关Java的一些趣事,相信你已经火烧眉毛的想要正式学习Java了,毕竟以前的介绍只是一些概念,并无真的去接触Java,好比如何运行一个Java程序。java

那么,如何运行一个Java程序呢?咱们先来看一个例子:程序员

PS:做为一个Java程序员,你必定要在初学的时候紧紧记住如下这段代码。web

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!"); 
    }
}
复制代码

这是很是经典的一段代码,意味着你即将开启Java的代码,进入使用Java编织的代码世界,因此这段代码必定要记住,我记得我在刚开始学习Java的时候,网上认识一个作程序员的,我跟他说我学过Java,他有点不信,我就把这段代码敲给他了,他立马说“还真的学过Java啊”,看吧,知道这段代码的做用了吧。eclipse

由于你刚接触Java,你也许并不明白上面这段代码啥意思以及为啥要这样写,没事,这个如今不重要,这个到之后咱们会详细的讲解的。jvm

实例操做运行HelloWorld

接下来我将使用最原始的方式给你们运行这段代码:工具

首先,我在桌面上新建一个txt文件,而后把这段代码复制进去,接着我将文件的扩展名从txt改为java(这是Java文件的扩展名),也就是这个样子:学习

对了,这里必定要记住,文件的名字要命名成HelloWorld,你暂时不用管为何,解析来咱们按住win+r打开Windows的运行窗口,而后在里面输入cmd打开咱们的命令行窗口,也就是这个样子:开发工具

打开命令行窗口以后,咱们在命令行输入cd desktop也就是进入到咱们的桌面路径。这个时候咱们要知道,咱们刚才已经把写好的Java文件(也就是HelloWorld.java)放到桌面上了,接下来咱们开始使用以下的命令去编译这个文件:spa

javac HelloWorld.java
复制代码

你们要注意上图中的操做,那些不仔细看的同窗不要再问,cd desktop怎么操做的啊,图上已经很清楚了哦。操作系统

这个时候你会发现,当咱们执行完上述命令以后,在文件的下方随之会产生一个HelloWorld.class的文件。

这个文件叫作Java字节码文件,也就是咱们使用javac这个命令将HelloWorld.java编译以后生成的文件,你目前先知道这些就行,那么咱们接下来继续操做,使用以下命令:

java HelloWorld
复制代码

这个时候咱们注意看,当执行完这个命令以后,底下随之产生了一个Hello World!的字样,这是啥,咱们再回过头来看看这段经典代码:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!"); 
    }
}
复制代码

咱们是否是看到这么一句代码了:

System.out.println("Hello World!");
复制代码

意思可能你也猜到了,这就是在屏幕上打印出Hello World!

以上咱们就简单的演示了一下如何运行一个java程序,可能这里有跟着个人步骤操做的同窗,可是你会发现,你的不行,你的操做早就出错了,这是为何呢?

为何个人就不行?

行了,别疑惑啦,我来告诉你怎么回事吧,你在操做的时候,当你在命令行输入:javac HelloWorld.java的时候,是否是出现了如下的错误:

这是为啥啊?什么不是内部或外部命令,其实啊,这个简单点说就是找不到这个javac这个命令,也是啊,你如今直接就在本身的电脑上去编译java程序,那怎么行,咱们想要听歌,也要下载个听歌软件呢,因此啊,你这里是缺乏运行java的一些东西了,好比这个javac命令,它实际上是一个可执行程序,咱们Windows上的可执行程序通常就是exe结尾的,因此这几个javac其实就是javac.exe

看看,你电脑里是否是没有它?那怎么办?不着急,咱们接下来就进行java运行环境的的搭建,也就是常规的jdk的安装与配置。

正式开始搭建java开发环境(jdk安装与配置)

想当年我在学java的时候,安装这个jdk,配置环境变量啥的,足足花了我一个周啊,其实如今也有不少人说,搭建环境什么的是最麻烦,并且容易出错的,我当时就以为java环境变量配置这块真难,搞得我云里雾里的。

你可能会说,有问题找百度啊,百度上关于jdk安装与环境变量配置的有不少教程啊,是的,我当初也是跟着网上教程搭建的,不少就是一上来就教你如何下载,而后怎么配置,就是一顿猛如虎的操做,而后就完了,那些给你讲为啥这样作的不多,致使本身当时理解的并非很透彻,因此常常出现小错误。

因此,在今天的次这讲解中,我不只教你怎么操做,不少比较重要的点我也会告诉你为啥这样作,也就是不只知其然,还要知其因此然!

jdk和jre是个啥

那么jdk和jre究竟是个啥呢?首先你须要知道的是这俩货其实都是缩写,什么缩写呢?以下:

JRE: Java Runtime Environment JDK:Java Development Kit

就是这了,JDK就是Java Development Kit,也就是java开发者工具的意思,也就是你若是须要编写一些java程序的话,是须要这个jdk中提供的一些工具的,好比咱们上面说的javac命令和java命令,那就是jdk提供的开发工具,因此说啊,若是你要开发java的话,就必定要安装JDK了。

那啥又是jre呢?jre的全名是Java Runtime Environment,意思也就是java运行时环境,这个也好理解,就是说,你虽然可使用jdk提供的工具去开发java程序,可是若是你要是想要在你的电脑上去运行java程序的话,那就须要安装jre了,由于jre是提供了一个能够供java程序运行的环境。

另一点须要特别说明的就是,其实jdk已经包含了jre,在你下载安装jdk的过程当中就会提示你安装jre的,不过jre也是能够单独安装的,可能有人不明白,为啥jre能够提供java的运行环境呢?这里多说一点,那是由于jre中包含jvm,也就是java虚拟机,除此以外jre还包含一些java基础类库,java程序是运行在java虚拟机中的,这个你如今不理解也没事,关键你得记住jdk和jre大概是个啥。

它们之间的关系大体是这个样子的:

因此,先有个基本的认识就ok了,接下来咱们开始安装JDK。

JDK的安装与配置

咱们在作这个操做以前默认你以前是没有安装过的,因此咱们会一步步的操做每个安装与配置的过程,因此,你是能够跟着操做的。

咱们上面大体解释了什么是jdk和jre,在正式下载安装jdk以前,我还须要补充一点额外知识,咱们知道Java最初是有sun公司开发的,后俩sun公司被Oracle收购,Java也就是成了Oracle的,那么伴随Java的jdk也就从当初的sun公司跑到了如今的Oracle,要知道这才是正宗的Java啊,提供的jdk也是最原汁原味的,因此咱们如今经常使用的jdk就是Oracle公司的。

说这个啥意思呢?那是由于jdk可不止Oracle公司一家有,其余公司可能也会去本身实现jdk,包括jre也是,不一样公司均可以本身实现来知足本身的个性化业务的,好了,说这个就是为了告诉你,咱们用Oracle的Java相关工具,毕竟这是主流!

下载JDK

接下来咱们就去下载JDK,首先咱们去搜索JDK:

而后咱们点击进去,就来到jdk的下载界面:

在这个下载界面,咱们看到了最新的jdk如今已是13了,咱们这里要使用的是jdk1.8,咱们继续往下找,找到1.8的下载位置:

这里会不会有人不知道从哪里看Jdk的版本啊,你仔细看左上角,是否是有一个Java SE 8u231,这个就是指的jdk版本是1.8的啊,你在看看其余的,是否是有13,11,7等等,其实1.8就是8,这个只是叫法不一样,在jdk1.4以前都叫什么1.X这种形式,可是到了1.5的时候,因为这个版本更新幅度很大,为了突出这个,就不叫1.5,改叫5.0了,因此后面就是6.0啊,7.0和8.0之类的,而这个0通常不读,也就是jdk8或者jdk11,不过咱们依然能够叫成jdk1.8,其实就是jdk8.

好了,咱们开始下载,当咱们点击下载按钮以后,会出现以下的界面:

这里要注意的首先在最上方你要先“Accept”,你不接受,人家不让下载啊,点击接受以后,在下方找到本身适应的版本,好比个人是Windows64位的,我就下载最后一个,点击便可:不过这里会跳转到Oracle登陆界面,须要你注册Oracle才能够下载,记得以前好像不行的,不过如今人家让注册才能下载,没办法,那你就注册如下就好了,好比我这里注册好了,我直接登陆:

点击登陆以后就开始下载了(若是你这里有问题搞不懂的话,能够发邮件给我,我帮你解答,个人邮件地址:ithuangqing@163.com)。

安装JDK

下载以后咱们双击这个文件就会进入安装界面:

咱们接着下一步:

到了这一步咱们就须要注意几点了,首先第一点发现没有,中间那个框有个公共jre,这个公共jre是什么啊,这里你先不用管,我后面会单独说说这个的,这也是个细节问题。

另外要注意的点就是安装的位置,这里是能够更改的,不过改与不改,都是可有可无的,可是,有两点,你必须记住:

1.安装路径中不能包含中文

2.安装的位置你必定要记住在哪,由于后面配置环境变量须要用到。

好比我这里将路径更改一下,点击更改:

这里如何改变路径内容?看图:

你能够点击上面的向下箭头展开本地路径列表去选择一个合适的路径,固然,你也能够直接在下面的路径栏中输入你要存放的路径,这里有个小细节,路径最后面要不要加上这个反斜杠呢?就是“\”,这个是要加的,那要是你忘了加怎么办,没事,当你点击肯定的时候它会自动添加上,不信你试试。

点击肯定以后就是这样了:

ps:为了检验你们看的是否定真,我上面故意犯了一个小错误,不过这个错误没什么影响,不知道你看出来了嘛?

紧接着,咱们下一步:

这已经在开始安装了,咱们等一会,不过这里对你们来讲可能会有一个小问题,什么问题呢?你是否是疑惑怎么在这里不动了?

出现这个状况怎么回事啊,你看看你的说面是否是又弹出这么一个框:

这是啥?看到jre了没,这个是让咱们安装jre的,这里你先记住,这个不是jdk中包含的jre,这是一个单独的jre安装,这里也改变一下jre的安装位置,让它与jdk处在同一个层级下,方便查找使用(有些工具可能须要单独的jre)

注意这里在更改位置的时候必须为jre指定一个空文件夹,因此我这里新建了一个空的文件夹jre:(其实这里更好的操做应该是将空文件夹命名成jre的完整名字,包括版本号,这里应该就是jre1.8.0_231)

而后下一步就开始安装java了(包含jre的安装):

安装完成程序就退出了,这个时候咱们去看看咱们安装以后的文件夹,你还记得你把java安装到哪里了吧,个人在这里:

箭头所指的是咱们刚刚安装好的jdk和jre(注意这里的命名其实不推荐,上面说过了),因此咱们先把这个jre的文件名字改为jre1.8.0_231,另外上面提到过我这里有个小错误,不知道你们发现没,其实就是jdk的文件夹名称后面的应该是231,我却写成了321,如今咱们来作一个统一的修改吧。

如今咱们就正式把jdk和jre安装完成了,接下来咱们打开jdk你会发现还有一个jre:

这个实际上是jdk自带的jre,咱们以前就说过jdk是包含jre的,因此在安装jdk的时候会自动把jre也给安装上的,不过咱们上面是否是还单独装了一个jre,这是咋回事?

公共jre

还记得这张图嘛?

咱们以前在安装的时候并无在乎这个公共JRE,那这是个啥玩意儿,我以前在学习的时候就没有注意这个,网上看的不少教程也没有讲这个,尤为是那种说傻瓜安装的,就直接告诉你下一步下一步就能够了,顶多提醒你要记住jdk的安装位置,后面要配置环境变量用。

那这个公共JRE是个啥?简单点说就是这是一个独立的JRE安装程序,若是这里你不作什么处理,那么在后续的安装过程当中会提示你安装JRE,也就是这个:

其实咱们的jdk已经自带jre了,安装jdk以后就已经安装了jre,不信你看:

因此,这里的公共JRE至关于另外单独装一下JRE,通常状况下是不须要的,所以咱们在这里能够这样作:

点击这个公共JRE的下拉箭头,展开以后选择此功能将不可用,也就是成了这个样子:

这样就不会单独安装一个JRE了。这是个小细节,你们注意就好了。

配置Java环境变量

到了这里咱们已经安装好了JDK(jre也以随jdk的安装而安装),接下来咱们就须要去配置Java的环境变量了。

接下来我先带你们去配置Java环境变量,使得咱们能够编译Java程序以及运行Java程序,至于为何要配置,其中涉及的有些概念是什么意思以及有什么区别,咱们呢暂时先无论,等咱们把环境变量配置好以后,那个单独说。

首先咱们先到咱们下载的jdk中看一下:

这里面的文件看起来很多啊,不过做为初学者的你,目前仅仅须要了解下bin目录就行,这个bin目录中就是存放了各类开发java程序须要用到的工具集等,咱们以前说的javac命令和java命令就是在这个bin目录,不信你看看:

咱们要编译Java程序的话就须要使用到javac这个命令,你以前操做的不行那是你电脑中根本就没有这个命令了,固然不行了,不过你会说,如今有啦,能够了嘛?

咱们来试试,打开cmd命令行窗口,而后进入到桌面,由于咱们以前的代码文件时放在桌面的,接着,咱们输入:javac HelloWorld.java

好吧,仍是不行,那是怎么回事啊,别着急,咱们再来看下面的操做你就会明白了:

怎么样,看明白了吗?要知道为何不行,那是你没有javac这个命令啊,那你说如今我不是已经安装jdk已经有javac这个命令了吗?这却是不假,但是你直接在命令行去输入javac HelloWorld.java电脑也不知道这个javac在哪啊,因此你得去写个绝对路径才能够。就像上面那样。

可能你也想到了,这样的话就麻烦了,要写那么长,不能直接写javac就能编译吗?这个固然能够啦,这就须要进行咱们常说的java环境变量配置了。

首先,咱们复制javac所在的路径,其实也就是bin的路径,个人以下:

接下来咱们右键点击个人电脑选择属性就来到了这里:

而后咱们就进入了环境变量配置,也就是在这里:

进入到环境变量以后咱们找到系统变量中的Path,而后双击就会弹出“编辑环境变量”,而后咱们点击新建:

而后将咱们复制的bin路径复制进去,而后点击肯定便可,这里要注意,以前打开的窗口也须要都点击肯定,直到全部的都关闭,这样咱们就简单的把Java环境变量给搭建起来了,那咱们再来试试以前的javac HelloWorld.java这里要注意了,以前的dos命令窗口必须关闭从新打开:

还真的能够了,你那里呢?是否是也操做成功了呢?这个看起来也挺简单的啊,那是否是也能够运行java呢?咱们再来试试:

看到没,能够了,不过我上面好像除了个错误啊,仔细看是我写的太快,把单词打错了,这其实也是不少新手的一个问题,就是以为我明明是照着作的,怎么到我这里就不行了呢?有的时候就是由于本身的马虎,说不定就是哪一个单词写错了。

如今咱们差很少已经把Java环境给配置好了,为何说差很少呢?其实还有一个更有的配置,接下来咱们一块儿来操做,此次咱们不复制bin的路径了,而是复制jdk的安装路径,个人是这个:

而后咱们仍是以前的编辑环境变量的操做,因为跟上面的打开方式同样,我这里就不贴图了,不知道的返回上面看,首先咱们在系统环境变量中点击新建变量:

在新建系统变量中,按照图中所示操做,变量值就是jdk的安装位置,变量名有人问能够改吗?答案是不能,就要命名成JAVA_HOME,而后点击肯定,接着咱们再双击打开Path,而后仍是新建:

这里不知道有人看懂没,上面的新建系统变量其实就是个映射,这里的:

%JAVA_HOME%其实就等价于jdk的路径,后面再加上个“\bin”不久跟以前的同样了嘛,那为何要这样作呢?由于咱们后面可能还要用jdk11,那么咱们这样设置环境变量的话就能够直接去更改JAVA_HOME而不用再去更改Path中的变量了,这样设置以前的那个就能够删掉了。

到此,咱们就配置好Java的环境变量啦!

关于JDK的那些个概念解惑

以上咱们安装了jdk,并且也配置好了Path环境变量,如今咱们能够正常去编译和运行Java程序了,那么关于jdk的安装配置这就结束了嘛?固然不是,这其中还涉及不少的概念性问题,好比说什么是Path环境变量,什么是环境变量和系统变量以及classpath是什么等等,接下里咱们一块儿再来看看。

什么是Path环境变量,为何要配置?

Path环境变量在Windows中其实就是去记录一些可执行文件的,在Windows中的可执行文件如xxx.exe等,当咱们要执行这样的一个可执行文件的话,会首先在当前路径下去寻找这个可执行文件夹,好比咱们以前在桌面使用javac命令,可是桌面并无这个命令,也就是当前路径没有,那么就会去Path路径下去找,若是Path路径下也没有的话,那就会报错。

若是咱们把须要用到的命令工具都配置到(这里配置的而是工具的路径地址)Path环境变量中,那么咱们就能够在任意位置去使用这个命令工具,由于虽说咱们当前路径没有,但在Path环境变量中能够找到这个命令工具的地址。

就像咱们写的Java源程序,须要使用javac命令去编译,可是javac命令只能在其bin目录下才能运行,可是咱们日常作开发又不能把程序保存到bin的安装目录中,因此为了让咱们能够把咱们的程序保存在电脑上的任意位置,那么就须要将javac设置成在电脑的任何位置均可以运行,那么怎么办呢?解决办法就是配置环境变量。

在咱们没有配置环境变量以前,javac命令只存在与bin目录,因此咱们想要使用javac命令,那就必须在javac所处的目录下进行,若是你在其余目录下运行javac,那也找不到javac这个命令工具啊,有人说,那不能够在你要执行的那个程序的目录下添加上jacac命令工具吗(好比说把javac.exe复制到桌面),这个还真不可行,由于java不少命令是互相依赖的,单独的一个javac是不能独自运行的,除非你再复制一个完整的jdk目录过去,可是若是你又换了一个目录呢?总不能再复制一份吧,显然这是不现实的。 。

因此若是不设置环境变量而你执行程序的当前路径下又没有javac这个命令,那么操做系统是不知道你这个javac.exe在哪里,因此就没法执行,另外要知道在电脑上,当咱们输入一个命令的时候,它会先搜索当前路径若是没有所须要的,那就会自动去搜索PATH变量中所指定的全部目录。

path和classpath的区别,为何要配置class path

在有的教程中会告诉你们要在配置一个classpath,其实这个我是没有配置过的,这是啥呢?

对于Path环境变量简单来讲就是告诉操做系统你所须要的命令工具该去哪里找,而classpath记录的则是一些Java类文件的位置,为啥要弄这个,设置classpath主要是为了将要使用到的一些class文件与Java中的一些类库文件关联起来,这样是为了来运行一些比较特殊的Java程序,啥是特殊的文件,好比你的Java程序使用到了一些其余的类,好比使用到了别人写的一个Java类(你的Java程序引入了该类),这个时候你运行这个Java程序的时候就必须告诉系统该去哪里找这个Java类,这个classpath就是指定这个Java类文件的地址的。能够这么简单的去理解。

另外要知道的就是path是给操做系统用的,不只仅是配置Java相关的,其余不少也须要配置path环境变量,而classpath则不一样,它专门是针对Java的,是专门用于查找一些Java类路径的。

通常来讲classpath并不须要配置,像那些引用其余类的程序咱们都会使用一些集成开发工具了,也便是IDE,好比IDEA和eclipse这些,它们都有相关的配置,因此你即便不配置class path也没有关系,可是你总得知道有这么个东西。

环境变量,系统变量和用户变量

简单来讲,环境变量就是一个路径,当你在电脑中用到一些相关的东西的时候,电脑会自动经过这个变量指定的路径去循环早你须要的东西,咱们常见的就是各类命令工具了,好比咱们一直在说的javac.exe 。

系统变量是环境变量的一种,咱们在设置环境变量的时候会发现有两个,一个是用户变量,一个是系统环境变量,其实这个也好理解,咱们知道Windows系统能够设置多用户操做,这个用户变量只针对当前用户生效,而系统变量则是全部的用户均可以使用。

再简单点来讲就是,若是说设置系统环境变量和用户环境变量的话,这均可以叫作设置环境变量,若是你设置的是系统环境变量的话,那么你这个电脑上的全部用户均可以使用,可是若是你设置的是用户变量的话,其余的用户就不能使用了。

相关文章
相关标签/搜索