环境变量浅析
Posted lucky_xian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了环境变量浅析相关的知识,希望对你有一定的参考价值。
环境变量浅析
1. 环境变量,系统变量和用户变量
- 1.1. 环境变量包含系统变量和用户变量;
- 1.2. 系统变量针对该操作系统下所有用户起效;
- 1.3. 用户变量只针对当前用户起效;
2. PATH:系统变量。
当我们在命令行窗口敲出javac时,操作系统要怎么打印出如下信息呢?
思路分析:
- 2.1. 操作系统肯定时执行了某个程序(windows为.exe文件,Linux时.sh文件),才能打印出这些信息;
- 2.2. 操作系统要怎么找到这个程序呢?盖茨爸爸说过以下的话:
1.操作系统首先在当前目录下找当前要执行的文件(本例中的javac.exe不在当前目录),找到即可执行;
2.如果当前目录找不到,则应该去系统变量所记录的所有目录下一一查找,找到即可执行(本例中的javac.exe配在了path目录下了);
3.如果在以上三个目录都找不到,那操作系统就撒个娇,报个错好了~
注意事项:
- 2.3. 我们加到path目录下的时bin目录,不是java文件夹目录,因为所有的可执行文件都在bin目录下呀,在java目录操作系统是扫描不到可执行文件的。
- 2.4. 我们也可以在命令行使用可执行文件的全路径名来执行程序(路径名字不能有空格,若有空格需要加双引号):
- 2.5. 豆知识: Program Files 也可以写成 Progra~1。
3.ClassPath:
-
3.1. 当java程序执行一些.class文件,.jar文件(.jar包中包含的是编译好的.class文件),ClassPath需要告诉java程序,在哪里路径下可以找到这些文件;
-
3.2. 和Path不同的是,当java程序需要寻找.class文件,.jar文件时,不会从当前目录查找,而是直接扫描ClassPath;
-
3.3. 若要java程序运行当前目录下的.class文件,可以在class文件前加./表示当前路径;
-
3.4. ClassPath下配置的路径以分号分隔开来;
-
3.5.多个应用可能有同名的.class文件,而java程序扫描时是在 ClassPath所配置的路径列表下从左到右扫描,执行扫描到的第一个文件,所以可能导致结果出错,所以在IDEA等应用程序中,不需要人为手动设定CLASSPATH系统变量,而只设定当前程序的特定的CLASSPATH系统变量,这样便不会影响到其他程序的运行。
-
这里可以写一个实例的,有空写一下。
4.JAVA_HOME:
- 4.1. JAVA_HOME并不是Java运行需要的参数,而是提供给第三方工具使用的参数,第三方工具可以使用JAVA_HOME来寻找需要的java程序;
- 4.2.使用步骤:第三方工具可以在自己的配置文件里使用%JAVA_HOME%/bin,即可执行java的bin目录下所有的程序了,而且以后Java的安装目录变更了,只要在系统变量的JAVA_HOME下同步新的安装目录,第三方工具不需要改动任何配置,依然可以使用新的java路径的bin目录下所有的程序。
参考博客(喜欢这个作者遣词造句,很好玩):https://blog.csdn.net/u011513853/article/details/52865076
oracle官方文档:http://https//docs.oracle.com/javase/tutorial/essential/environment/paths.html
- oracle官方文档那个链接已经打不开了,回头可以找一下这个文档看一下。
以上是关于环境变量浅析的主要内容,如果未能解决你的问题,请参考以下文章