什么是环境变量?

前言

在初学 Java 时,相信你们下载安装完 JDK 后的第一件事就是 「配置环境变量」,几乎全部的教程都会告诉你当你在命令行工具中输入了 java 命令和 javac 命令后看到相似以下的结果就说明你的 Java 环境配置好了 👇java

不知道你有没有思考过这个「环境变量」到底是什么?为何配置了以后就会显示这样的内容,为何不配置,就会提示你一个错误:'javac' 不是内部命令或外部命令,也不是可运行的程序或批处理文件。web

若是你也有这样的疑问,不要着急,咱们今天就来一探究竟。windows

文内相关的演示,均在 Windows10 操做系统下执行微信

从打开软件的两种方式提及

咱们平时打开一个应用程序,通常是双击桌面图标或在开始菜单连接,不管是桌面的快捷图标仍是菜单连接都包含了应用程序的安装位置信息,打开它们的时候系统会按照这些位置信息找到安装目录而后启动程序,这里以 QQ 这个软件为例:编辑器

上面是咱们最经常使用的打开软件的方式,固然了,既然知道了一个应用程序的安装目录位置,咱们也能够经过命令行工具进入启动程序所在的文件,经过命令打开,如笔者 QQ 的位置为:工具

"C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe"

QQ 的启动程序名为 QQScLauncher,那么咱们打开终端工具,使用 cd 命令进入该目录,再输入.\QQScLauncher.exe,便可经过命令启动 QQ。flex

作一点改进

若是想要炫技,每次都先进入安装目录再打开文件显然有些麻烦,那有没有什么简单的方式,直接在命令行工具中输入 QQScLauncher 甚至直接输入 QQ 就能打开软件呢?url

固然是能够的,咱们只须要在用户变量Path中添加安装路径的字符,咱们在命令行工具无需进入软件的安装路径便可打开软件了。spa

咱们来试下直接在命令行工具中输入 QQScLauncher,果真能够直接打开软件了。操作系统

缘由

为何配置环境变量前,直接输入 QQScLauncher 没法打开软件呢?

这是由于操做系统并不知道你的 QQScLauncher.exe 这个文件在哪里,因此没法执行对应的文件。

你在命令行里输入的那几个符号,其实就是一些可执行程序的名字(标签、别名),是能够直接被当前系统直接执行的程序。若是是在 Windows 系统中,则这些被输入的符号就是能够直接被 windows 系统执行、后缀为'.exe'的程序(文件)。

那么为了可以让操做系统找到这个可执行文件,咱们就须要把 QQScLauncher.exe 这个 可执行文件所在的目录做为 PATH 环境变量的一部分设置起来,这样当你在命令行输入一个命令的时候,操做系统就会自动搜索 PATH 变量中所指定的全部目录 了。

在 Windows 系统中 PATH 变量中的全部路径采用分号分割,若是在 Linux 系统中采用冒号分割。

若是你设置好了环境变量,在命令 行中仍是出现一样的错误,那么有两种可能,一种就是你的设置不正确,另外一种就是你的设置没有生效,通常你能够关闭命令行窗口再从新打开就能够了。

环境变量

上面所说的 PATH 变量其实就是环境变量,和他的名字同样,环境变量是描述环境的变量,是指在操做系统中用来指定操做系统运行环境的变量。它包含了一个或者多个应用程序所将使用到的信息。

例如 Windows 和 DOS 操做系统中的 PATH 环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到 PATH 中指定的路径去找。用户经过设置环境变量,来更好的运行进程。

系统变量 OR 用户变量

相信细心的小伙伴已经发现了,在上图的页面中除了用户变量还有一个叫系统变量的。

事实上,环境变量是一个总称,表明了系统变量和用户变量,所以咱们说环境变量都是指的系统变量和用户变量。系统变量就是系统级别的变量,用户须要使用系统变量。若是系统变量被修改了,而任何系统用户都在用系统变量,所以每一个系统用户都将受到影响。用户变量运行在系统变量之上的,每一个用户拥有不一样的用户变量,不一样用户的用户变量之间是并列的,也是互不干扰的。他们之间的关系图以下如所示:

看到这,想必在验证 Java 环境是否安装成功的时候,咱们在终端工具中输入 javajavac 命令显示出相应的字符的原理想必你也就知道了吧。

一图说明:

题外话

做为一个计算机专业的学生,必定要学会使用命令行工具,你能够选择本身喜欢的终端软件,这里我使用的是 「Windows Terminal」,一方面是由于他是微软官方推出的终端工具,更有一点就是他的颜值很高,你能够在微软的应用商店搜索下载安装。

以上就是本文的所有内容了,若是你以为对你有所帮助,不妨点赞关注支持一波 👍


本文分享自微信公众号 - 01二进制(gh_d1999add1857)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索