jdk的安装
jdk的安装很简单,在这里我不多说。直接图解安装:
第一步:这里以jdk1.7为例。双击安装程序,将出现以下界面
第二步:单击下一步将出现以下界面
第三步:配置path环境变量:变量名path 变量值:你的jdk安装路径下bin目录。 配置完全部点确定
第四步:测试。开始》运行》输入cmd回车打开cmd命令窗口,分别输入java回车和javac回车。如果显示java用法或javac用法信息就正确,如下图
学习不仅要知其然,还要知其所以然:
1、我们为什么要配置path环境变量,可以不配置吗?
答案是肯定的,但是强烈建议配置path变量。为什么要强烈建议配置环境path变量呢?如果你用记事本写了一个java源程序,在命令窗口中编译java源程序时,首先要切换到jdk安装路径的bin目录下才能编译。如果你用的IDE工具,如eclipse或MyEclipse,在没有设置path变量或者设置错误时,运行eclipse会报以以下错,找不到运时环境
先说一下什么是环境变量,path环境变量有什么作用。
a、概念:环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。(此段落摘自与百度百科,不理解不要紧,我会详细说明)
b、实例说明:需要强调的时,当系统运行一个程序或文件时,系统会首先在当前目录下查找此程序,然后到环境变量path所指定的路径中搜索文件。
首先在c盘的目录a下有一个1.txt的文件,1.txt的内容为:hello,path 结构如下图
第二:开始》运行》输入 cmd 回车打开dos系统命令窗口(或win+r快捷方式》cmd),如下图
第三:输入cd /切换到c盘的根目录下,然后输入1.txt回车,提示1.txt不是内部或外部命令……切换到a目录下,在输入1.txt,1.txt文件运行。如下图
这说解释了第一个问题,当系统运行一个程序或文件时,系统会首先在当前目录下查找此程序。
第四:设置环境变量。右击我的电脑》属性》高级系统设置》环境变量》新建用户变量》变量名为path 变量值为c:\a
如下图
第五:设置完path环境变量,重复第二步,打开cmd命令窗口,输入cd /切换到c盘根目录下。输入1.txt,而这次1.txt文件能够运行,为什么第三步中,在c盘根目录下直接输入1.txt不能运行运行,而这次却能够运行。这解释了第二个问题:当系统运行一个程序或文件时,如果在当前目录下找不到,则到环境变量path所指定的路径中搜索文件。
2、用户变量与系统变量有什么不同呢?
简单说明:
系统变量与用户变量差别不是很大,现在的电脑用户大部分都只有一个用户。
系统变量就是对所有的用户起作用,而用户变量只是对当前用户起作用!
还有一个情况就是,当同时设置系统环境path变量和用户环境path变量,系统会先从系统变量path所指定的目录搜索程序,如果找到了就执行,而不再去搜索用户变量path所指向的目录。只有当在系统变量path所指向的目录下没有搜索到,才到用户变量path所指向的目录搜索!(好像有点抽象,不要紧,在下面做实例讲解)
实例说明:
在d盘下新建文件夹,重命名为a;然后在a下新建文本文件,重命名为1.txt;编辑1.txt文件的内容为:你好,我是用户变量
同样在d盘下新建文件夹,重命名为b;然后在b下新建文本文件,重命名为1.txt;编辑1.txt文件的内容为:你好,我是系统变量
设置用户path变量:右击我的电脑》属性》高级系统设置》环境变量》新建用户变量——变量名为path 变量值为d:\a
设置系统path变量:右击我的电脑》属性》高级系统设置》环境变量》新建系统变量——变量名为path 变量值为d:\b
注:(如果存在path变量,变量值直接追加后面,并用;(引号)隔开)
然后开始测试:开始》运行》输入cmd回车》输入1.txt回车之后打开的文本文件内容为“你好,我是系统变量”,也就是打开的是d:\b目录下的1.txt文件,但并没有打开d:\a目录下的1.txt文件,这也证明了上面的论证是正确的:当运行程序或文件,系统会首先在当前目录下搜索,然后在系统path变量所指定的目录下搜索,最后在用户path变量所指向的目录下搜索,如果搜索到就执行程序或文件而不再向下搜索。
运行后如下图:
3、现在jdk1.5及之后的版本还要配置classpath变量吗?
对于jdk1.5及之后的版本是不需要设置classpath变量,如果设置正确也不会有问题,但是设置错误就会出问题。
也许你会问,从网上随便搜索java环境变量配置,都会提到要配置classpath环境变量,也许这也是网络方便的一个弊端,当一个人把过时或错误的信息传出去,一传十,十传百,也就错上加错啦!这让我想起了一个古代的典故《三人成虎》。当然他们能够传出来也是有一定的道理的,如果使用jdk1.4或更早的版本编译和运行java程序,是需要设置classpath变量的,当运行程序是,java会搜索classpath所指向的路径(.代表当前路径),并加载dt.jar和tools.jar文件。所有以前需要classpath变量要设置成:.;%java_home%\lib\dt.jar;%java_home%\lib\tools.jar
但是后来,sun改进了jdk的设计,jre会自动搜索当前路径下的类文件,而且而且使用java的编译和运行工具时,系统会自动加载dt.jar和tools.jar文件中的java类,因此jdk1.5及以后的版本不再需要设置classpath环境变量。