深入解析环境变量
来源:互联网 发布:股票龙虎榜软件 编辑:程序博客网 时间:2024/06/08 12:00
要理解环境变量,首先要理解环境变量的含义:环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。
以前刚开始学校java的时候对环境变量有一定的了解,应为我们知道学习java的第一部就是安装JDK,而JDK是绿色的为了方便的使用JDK提供给我们的工具我们一般要配置环境变量,当时我并不理解环境变量的真正含义,只是老师叫我们按书上的操作吧环境变量配置好就ok啦。而当我学习了毕老师的java视频后对环境变量有了更加深刻的认识了。
为什么需要环境变量?
配置java环境变量是为了能在运行-cmd-中用java命令来编译和运行java代码。在我们的window系统中,安装的软件都有路径的。如果我们不配置环境变量的话,我们就只能在jdk的安装路径下才能运行。换到了其它的路径就不行了,系统就会提示找不到路径,为了能在任务路径下都可以运行jdk里面的工具,我们就要配置环境变量。
环境变量的规则:
在配置Java的环境变量的时候我们通常是是JDK里面的bin文件夹的路径加到path后面就行了,而我把path里面的所有内容复制出来看时发现了%systemroot%这个一点都不像路径的东西。
如上图,我问了度娘才明白%...%这个格式就相当于把路径定义成了一个变量,而这个变量里面的值可以随意改变但是不影响path里面的路径配置。这样我就理解了原来学习java的时候的为什么配置java有两种方法,第二种方法,吧jdk的安装目录自定义一个变量JAVA_HOME,再在path里面加上%JAVA_HOME%\bin了,这样一来以后jdk的位置改变了就不用在去改path里面的内容了,直接修改JAVA_HOME的值,避免了修改path可能出现的风险问题。
环境变量的调用规则:
通过运行程序出错,探索出错原因意外的发现环境变量的调用是有规则的,具体如下:
1.系统首先收索当前路径,如果当前路径没有再搜索path里面的路径。
通过set path=命令将当前的path值暂时置空
这时执行javac命令没有早到路径
而在javac的路径时可以执行javac这就证明了这点。
2.classpath环境变量则恰恰相反
在classpath变量里结尾带分号和不带分号是不一样的
a.有分号,
虽然classpath配置为c盘但是有分号,c盘目录找不到还会继续寻找当前目录。
b.没有分号
demo.class在d盘下却显示找不到demo类,这说明没有分号只搜索classpath下的内容而不搜索当前目录的内容,一下子我就理解的出学java时想破脑袋也想不通的问题。
通过以上的探讨,对当时为什么在配置classpath时一定要加上“.;”了。
终于理解了命令行执行java的过程了:调用虚拟机先在classpath路径下寻找要运行的文件,没有早到在返回到当前文件目录下寻找并执行。
- 深入解析环境变量
- java环境变量深入剖析
- uboot环境变量解析
- Path环境变量解析
- JDK、maven环境变量解析
- Java环境变量设置解析
- U-boot环境变量解析
- Java环境变量解析
- /etc/profile环境变量配置解析
- /etc/profile环境变量配置解析
- /etc/profile环境变量配置解析
- Linux中PATH环境变量解析
- /etc/profile环境变量配置解析
- Linux中PATH环境变量解析
- linux PATH环境变量全解析
- linux PATH环境变量全解析
- linux PATH环境变量全解析
- linux PATH环境变量全解析
- hdu1879 继续畅通工程
- Struts2的拦截器机制
- 黑马程序员 Java基础之10进制转换
- hdu 1233 畅通工程 三
- android权限大全
- 深入解析环境变量
- 前置声明的使用
- spring启动component-scan类扫描加载过程---源码分析
- hadoop自学轨迹-linux环境搭建
- window 7 IIS配置方法 win7 Internet信息服务配置方法详解
- 搬家一
- 《约瑟夫生者死者游戏》算法 C语言版
- 中国联通SGIP协议开发注意要点
- 调用方法名