系统变量,与Java变量,Path懒人模式,CLassPath懒人模式详解
(非计算机专业人士,很多观点都是推测,希望抛砖引玉,得高人指点)
文件路径:
每个文件都有自己的绝对路径,声明这个文件在哪个盘的路径下的
可以定位到这个文件
但是有的时候我们还不知道这个文件的路径的时候,就会用一个变量来
代替他的路径,然后在当我们知道这个变量的赋值的时候,替换这个变量,
比如我的dota2不知道用户装在哪个盘里,但我要在程序里指定dota2文件下的
bin文件夹里,取东西,我就用%dota2%\bin来代指一下,而真正的电脑系统执行的时候
就会发现%dota2% 是一个系统路径变量,就会去变量设置的变量池中查找 key = dota, 返回
这个key的value,这个就需要我们自己去设置下了,如果没有,%dota2%\bin将会无法确定在哪里
而如果我们设置 %dota2% = "G:\game" 这样就会变成 "G:\game\bin"
Java中使用的系统变量:
(不区分大小写)因为文件名,也不分大小写,只要字母重名就不被承认
而在Java 程序中,使用%JAVA_HOME%这个变量来代指java的 jdk文件夹路径,
比如在Java 中会有:
%JAVA_HOME%\bin\javac.exe
系统一看见这个,基本是懵逼的
只有我们去环境变量里面,设置了这个变量,才能配合使用,放大招
因为只有我们才知道,Java装在哪个地方
key = JAVA_HOME value = "C:\Program Files\Java\jdk1.8.0_181"
这样一来,
%JAVA_HOME%\bin\javac.exe
就变成了
C:\Program Files\Java\jdk1.8.0_181\bin\javac.exe
系统变量自动匹配懒人模式:
path(PATH)
这个变量,可以说是自动匹配模式,
也就是说在CMD中,当一个文件在当前路径找不到的时候,
就会开启备用方案,去path里面循环遍历。
path里面的路径,都是以;隔开的,
系统会一个一个从左往右试过去,
.就代表搜索整个硬盘,各个分盘下查找
作为用户,我们直接打文件名,当前路径查不到,
就会去path里面一个个匹配,试试看哪个能用
从左到右
所以写path的话需要从小到大,越具体越好。
eg: dota2.exe这个文件 当前位置找不到,就进Path
遍历下所有的地址都+"\dota2.exe",
看看能不能找到dota2.exe这个文件。
只返回第一个查到的结果。
Java自动匹配懒人模式:
在Java中,因为所有.java文件都会转化为.class文件
而这些.class文件需要被加载,所以也配置了懒人模式
CLASSPATH:
当前找不到的.class文件,将会去这里从左到右查找
返回第一个符合的路径
原则一样是从小到大:
KEY= CLASSPATH value = "G:\liang_dev;.;"
当前没有,先找"G:\liang_dev;"
然后是全盘查找 ".;"
每个路径用分好隔开