Path:
Windows命令行模式(CMD下):
在Windwos的CMD下,如果当前路径不包含执行的文件,文件就无法被找到。
这就像快递员送快递需要完整的具体地址一样,你不能说我朋友就在广东那一带,你去送吧。
快递小哥哥只会给你个白眼---送你个蛇头。
比如只有在D盘下才有 小明.exe,我只能在CMD显示是
D:\>
才能用
D:\>小明
(执行.exe 文件是不带后缀的,直接打文件名就能执行。)
如果是在C盘下执行
C:\>小明
因为小明这个程序只有在D盘才有,所以就会找不到了。
这样显然不是很方便,比如说qq.exe 这个QQ程序在一堆文件夹下,我想在CMD中执行就只能:
C:\>
C:\>cd Program Files (x86)\Tencent\QQ\Bin
C:\Program Files (x86)\Tencent\QQ\Bin>qq
转到这个文件夹下才行,只有这里面才有qq.exe呀。
这显然不是很方便,如何在任意路径下随性的呼唤QQ呢?比如说
C:\>qq
就能直接启动qq是不是会更方便一些呢?
=======================================================
解决的办法是去系统环境变量里面设置Path。
那到底什么是Path呢?举个栗子:
小张寄了一个快递给亮亮,可是没写任何地址,只有收件人的名字。(程序名)
快递小哥看到你的信上没地址。
就去查一个备用的信息表,里面有小张之前填写的一些常用联系人电话和地址。这就相当于Path了。
快递小哥就一个一个从左到右的去核对这个表上的地址和姓名,最后就能查到只有在广东有在广东省深圳市XXX小区XXX楼XX室XX床上有个叫亮亮的,就能把地址补全了,然后送到亮亮的床上去。(快递何时能不用拿的呀。。。)
Path就相当于这个事先储存的信息表,CMD会先在当前位置找程序,如果没有就会去path里面从左到右的去试每个路径,看这个路径下面有没有要的文件。
比如Path下面依次有这些路径:
C:\Program Files;C:\Program Files\iTunes; C:\Program Files (x86)\Tencent\QQ\Bin;
再执行:
C:\>qq
成功了!
但其实系统是这么做的:
检查C:\; 啊,没有qq.exe,
转入Path里面:
然后看C:\Program Files;啊,没有。
然后看C:\Program Files\iTunes;啊,没有。
然后看C:\Program Files (x86)\Tencent\QQ\Bin;诶,在这里。
然后qq.exe就被补全:
C:\Program Files (x86)\Tencent\QQ\Bin\qq
然后就执行成功了。
=======================================================
java中的编译器也是javac.exe程序,一般在C:\Program Files\Java\jdk1.8.0_181\bin文件夹下面,要想在CMD下用这个程序,就只能转到java的bin的路径下,才会有javac.exe这个程序,所以同理只要把编译器所在的文件夹地址加到Path。也就是 C:\Program Files\Java\jdk1.8.0_181\bin加入path,这样一来,在任何地方都能直接启用javac.exe这个程序进行编译。
CLASSPATH
原理和Path一样,是模仿Path做的,把一个文件夹地址加入CLASSPATH,这样无论在哪都能直接执行这个文件夹下面的CLass文件。