什么是环境变量
轉載自知乎
前言
在初學 Java 時,相信大家下載安裝完 JDK 后的第一件事就是 「配置環境變量」,幾乎所有的教程都會告訴你當你在命令行工具中輸入了 java 命令和 javac 命令后看到類似如下的結果就說明你的 Java 環境配置好了
不知道你有沒有思考過這個「環境變量」究竟是什么?為什么配置了之后就會顯示這樣的內容,為什么不配置,就會提示你一個錯誤:
‘javac’ 不是內部命令或外部命令,也不是可運行的程序或批處理文件
如果你也有這樣的疑問,不要著急,我們今天就來一探究竟。
文內相關的演示,均在 Windows10 操作系統下執行
從打開軟件的兩種方式說起
我們平時打開一個應用程序,一般是雙擊桌面圖標或在開始菜單鏈接,無論是桌面的快捷圖標還是菜單鏈接都包含了應用程序的安裝位置信息,打開它們的時候系統會按照這些位置信息找到安裝目錄然后啟動程序,這里以 QQ 這個軟件為例:
上面是我們最常用的打開軟件的方式,當然了,既然知道了一個應用程序的安裝目錄位置,我們也可以通過命令行工具進入啟動程序所在的文件,通過命令打開,如筆者 QQ 的位置為:
“C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe”
QQ 的啟動程序名為 QQScLauncher,那么我們打開終端工具,使用 cd 命令進入該目錄,再輸入.\QQScLauncher.exe,即可通過命令啟動 QQ。
做一點改進
如果想要炫技,每次都先進入安裝目錄再打開文件顯然有些麻煩,那有沒有什么簡單的方式,直接在命令行工具中輸入 QQScLauncher 甚至直接輸入 QQ 就能打開軟件呢?
當然是可以的,我們只需要在用戶變量名Path中添加安裝路徑的字符,我們在命令行工具無需進入軟件的安裝路徑即可打開軟件了。
我們來試下直接在命令行工具中輸入 QQScLauncher,果然可以直接打開軟件了。
原因
為什么配置環境變量前,直接輸入 QQScLauncher 無法打開軟件呢?
這是因為操作系統并不知道你的 QQScLauncher.exe 這個文件在哪里,所以無法執行對應的文件。
你在命令行里輸入的那幾個符號,其實就是一些可執行程序的名字(標簽、別名),是可以直接被當前系統直接執行的程序。如果是在 Windows 系統中,則這些被輸入的符號就是可以直接被 windows 系統執行、后綴為’.exe’的程序(文件)。
那么為了能夠讓操作系統找到這個可執行文件,我們就需要把 QQScLauncher.exe 這個 可執行文件所在的目錄作為 PATH 環境變量的一部分設置起來,這樣當你在命令行輸入一個命令的時候,操作系統就會自動搜索 PATH 變量中所指定的所有目錄 了。
在 Windows 系統中 PATH 變量中的所有路徑采用分號分割,如果在 Linux 系統中采用冒號分割。
如果你設置好了環境變量,在命令
行中還是出現同樣的錯誤,那么有兩種可能,一種就是你的設置不正確,另一種就是你的設置沒有生效,一般你可以關閉命令行窗口再重新打開就可以了。
環境變量
上面所說的 PATH 變量其實就是環境變量,和他的名字一樣,環境變量是描述環境的變量,是指在操作系統中用來指定操作系統運行環境的變量。它包含了一個或者多個應用程序所將使用到的信息。
例如 Windows 和 DOS 操作系統中的 PATH 環境變量,當要求系統運行一個程序而沒有告訴它程序所在的完整路徑時,系統除了在當前目錄下面尋找此程序外,還應到 PATH 中指定的路徑去找。用戶通過設置環境變量,來更好的運行進程。
系統變量 OR 用戶變量
相信細心的小伙伴已經發現了,在上圖的頁面中除了用戶變量還有一個叫系統變量的。
事實上,環境變量是一個總稱,代表了系統變量和用戶變量,因此我們說環境變量都是指的系統變量和用戶變量。系統變量就是系統級別的變量,用戶需要使用系統變量。如果系統變量被修改了,而任何系統用戶都在用系統變量,因此每個系統用戶都將受到影響。用戶變量運行在系統變量之上的,每個用戶擁有不同的用戶變量,不同用戶的用戶變量之間是并列的,也是互不干擾的。他們之間的關系圖如下如所示:
看到這,想必在驗證 Java 環境是否安裝成功的時候,我們在終端工具中輸入 java 和 javac 命令顯示出相應的字符的原理想必你也就知道了吧。
一圖說明:
總結
- 上一篇: Git发生错误C:/Program Fi
- 下一篇: QRowTable表格控件-支持hove