你在開(kāi)玩笑有人不知道為什么開(kāi)發(fā)Java、Python、PHP要配置環(huán)境變量你看完不秒懂都不行

「?? 作者:極客小俊
」
「?? 把邏輯思維轉(zhuǎn)變?yōu)榇a的技術(shù)博主
」





你在開(kāi)玩笑吧! 居然還有人不知道為什么要配置環(huán)境變量???
前言概述
你在開(kāi)始學(xué)習(xí)編程的時(shí)候,首先就會(huì)接觸到環(huán)境變量
例如java、python、php
等開(kāi)發(fā)語(yǔ)言的時(shí)候,需要去配置一個(gè)環(huán)境變量
但又不知道為什么要去配置它! ?
并且這個(gè)環(huán)境變量
在配置的時(shí)候你也不能照本宣科的去配置,稍有不慎就會(huì)出現(xiàn)各種各樣的問(wèn)題!
今天我們就來(lái)討論討論這個(gè)環(huán)境變量
的話題,并且搞清楚它的原理,這樣以后再次遇到類似問(wèn)題就會(huì)迎刃而解!

什么是環(huán)境變量??
環(huán)境變量
英文名為: Environment variables
是在操作系統(tǒng)
中一個(gè)具有特定名字的對(duì)象,它包含了一個(gè)
或多個(gè)
應(yīng)用程序所將使用到的信息, 例如: 如系統(tǒng)臨時(shí)文件夾位置、系統(tǒng)文件夾位置、某些應(yīng)用軟件文件的路徑等等..
舉個(gè)梨子
??
當(dāng)要求系統(tǒng)
運(yùn)行一個(gè)程序
但是又沒(méi)有告訴它這個(gè)程序
所在的完整路徑時(shí),系統(tǒng)
默認(rèn)會(huì)在當(dāng)前目錄下面尋找這個(gè)程序
,如果找不到就會(huì)到環(huán)境變量
中的path
中指定的路徑去找, 所以我們用戶可以通過(guò)設(shè)置環(huán)境變量
,來(lái)更好的運(yùn)行程序!
這里我以windows
系統(tǒng)的環(huán)境變量
來(lái)舉個(gè)梨子
為了讓大家更好的去理解這句話,我們這里來(lái)實(shí)際操作一下, ?你可以打開(kāi)你的cmd命令行終端
來(lái)嘗試運(yùn)行一下你的QQ程序, 輸入一個(gè)QQ
程序,你看看會(huì)發(fā)生什么事情!
如圖

這里他提示了一個(gè)'qq' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件
結(jié)果很明顯,不能通過(guò)這種方式去打開(kāi)QQ程序,對(duì)吧 ?也就是說(shuō)你要先告訴系統(tǒng)這個(gè)程序在哪,才能進(jìn)行打開(kāi)
也相信大多數(shù)人都是通過(guò)桌面的QQ圖標(biāo)或者菜單等方式去點(diǎn)擊打開(kāi)這些應(yīng)用程序 對(duì)吧??
那么如果說(shuō)我硬要通過(guò)這種cmd
的方式去打開(kāi)一個(gè)應(yīng)用程序該怎么辦呢?首先你要進(jìn)入并且找到這個(gè)程序的準(zhǔn)確路徑位置!
例如上面我們要打開(kāi)QQ 我就要先通過(guò)cmd命令
直接進(jìn)入到QQ安裝的所在目錄下的bin目錄下的QQ.exe
這個(gè)執(zhí)行程序, 當(dāng)然這里需要通過(guò)一些簡(jiǎn)單的DOS命令
才可以進(jìn)去, 不明白沒(méi)關(guān)系,后面會(huì)說(shuō)到!
這里我這里的路徑為D:\騰訊軟件\QQ\Bin
那么我先切換到D盤(pán)
,然后再使用cd命令
切換到D:\騰訊軟件\QQ\Bin
這個(gè)目錄下,最后執(zhí)行一下QQ.exe
如圖

嘿嘿 你驚奇的發(fā)現(xiàn)居然打開(kāi)了QQ
程序, 是不是感覺(jué)很zb! ?這個(gè)效果跟你在點(diǎn)擊圖標(biāo)去打開(kāi)是一個(gè)效果, 沒(méi)有任何區(qū)別!
那如果本次都叫你用這種去慢慢輸入路徑的方式打開(kāi) 萬(wàn)一路徑很長(zhǎng)很復(fù)雜那豈不是你要瘋掉!??, 當(dāng)然這里只是舉個(gè)梨子,讓你更好的理解為什么要配置環(huán)境變量
你完全可以使用桌面圖標(biāo)來(lái)打開(kāi)這些應(yīng)用程序!?????
而且你如果關(guān)掉cmd
后重新打開(kāi),再次輸入QQ
其實(shí)又是同樣的問(wèn)題,這就意味著你要從cmd
打開(kāi)QQ必須每次按照剛才的步驟進(jìn)行打開(kāi),并且你還必須要切換到這個(gè)QQ
的bin
目錄下才行,這樣就很麻煩了, 也不利于你zb!?? ?
那么有沒(méi)有辦法讓我們?cè)陔S便哪個(gè)目錄中都可以直接使用cmd
輸入一個(gè)QQ
就可以打開(kāi)的辦法呢?
現(xiàn)在就是使用環(huán)境變量
的時(shí)候了!
其實(shí)很簡(jiǎn)單你只要把剛剛那個(gè)bin目錄
的路徑添加到環(huán)境變量
的系統(tǒng)變量
下的path
中就可以了
這里的path
也就是環(huán)境變量
中用來(lái)指定可執(zhí)行文件
的絕對(duì)路徑
,這里配置了很多很多路徑,彼此之間用分號(hào)隔開(kāi)!
具體操作這里以win10
為例,步驟如下:
點(diǎn)擊此電腦---->右鍵(選擇屬性)----->點(diǎn)擊高級(jí)系統(tǒng)設(shè)置------>點(diǎn)擊(環(huán)境變量)
如圖

然后找到系統(tǒng)變量
下的path
點(diǎn)擊編輯
如圖

然后點(diǎn)擊新建

然后復(fù)制你的QQ
安裝目錄下的bin
路徑, 我的路徑如下圖

也就是復(fù)制D:\騰訊軟件\QQ\Bin
到新建的對(duì)話框中

最后全部點(diǎn)擊確定即可!
然后你就可以在cmd
中的任意目錄 任意盤(pán)符下進(jìn)行打開(kāi)這個(gè)應(yīng)用程序了!
通過(guò)這個(gè)小案例 你應(yīng)該對(duì)環(huán)境變量有一點(diǎn)點(diǎn)初步的認(rèn)識(shí)了吧!
小結(jié)
環(huán)境變量
的主要作用就是規(guī)定了某些系統(tǒng)文件所在的位置!

用戶變量和系統(tǒng)變量的區(qū)別????????
概述
在上面的環(huán)境變量
介紹中,我們看到可以通過(guò)配置一些路徑從而達(dá)到在cmd
命令行中快速啟動(dòng)應(yīng)用程序!
但是眼尖的朋友可能已經(jīng)發(fā)現(xiàn),環(huán)境變量
的配置中被分為了 用戶變量
和系統(tǒng)變量
他們分別又是什么意思呢?
用戶變量 ??
在環(huán)境變量
中的用戶變量
配置只會(huì)當(dāng)前所登錄的系統(tǒng)用戶生效, 也就是說(shuō)登錄的系統(tǒng)用戶可以對(duì)他自己所配置的環(huán)境變量
參數(shù)進(jìn)行增刪改 , 不同用戶的用戶變量之間是獨(dú)立存在的,并且互不干擾的
系統(tǒng)變量??
在環(huán)境變量
中系統(tǒng)變量
的配置會(huì)對(duì)所有用戶都會(huì)有效, 也就是說(shuō)如果系統(tǒng)變量
被修改了,那么任何一個(gè)用戶都將受到影響!
但是只有管理員賬戶才有權(quán)限進(jìn)行系統(tǒng)變量
的設(shè)置, 普通系統(tǒng)用戶是不能夠去修改系統(tǒng)變量
的, 當(dāng)然一般情況下你通常都是使用的系統(tǒng)管理員賬戶進(jìn)行windows
系統(tǒng)的登錄的
所以平常我們?cè)谧约旱碾娔X系統(tǒng)中去配置環(huán)境變量
的時(shí)候,不管你是配置在用戶變量
還是系統(tǒng)變量
基本上還是沒(méi)有什么區(qū)別!
用戶變量和系統(tǒng)變量之間的關(guān)系??
用戶變量
和系統(tǒng)變量
我們可以用一張圖來(lái)進(jìn)行表示!
如圖

看到了吧,不同用戶的用戶變量
之間是并列獨(dú)立的, 但是如果說(shuō)系統(tǒng)變量
被修改了,那么任何系統(tǒng)用戶級(jí)別都會(huì)用系統(tǒng)變量
,因此每個(gè)用戶都將受到影響
所以說(shuō)系統(tǒng)變量
就是系統(tǒng)級(jí)別
的變量,影響范圍最大, 而用戶變量
是建立在系統(tǒng)變量
之前的獨(dú)立存在, 它需要使用系統(tǒng)變量
, 而我們所指的環(huán)境變量
則是是一個(gè)整體,它里面就代表了系統(tǒng)變量
和用戶變量
所以用戶變量
和系統(tǒng)變量
的區(qū)別就是他們的級(jí)別不一樣!

如何自定義環(huán)境變量命令??
當(dāng)我們想通過(guò)cmd
來(lái)運(yùn)行一個(gè)自己定義的命令時(shí),就會(huì)出現(xiàn)不是內(nèi)部或外部命令,也不是可運(yùn)行的程序
或批處理文件
的提示信息!
但是如果我們?cè)?/span>cmd
中輸入一個(gè)shutdown
命令則可以完全正常執(zhí)行!
如圖

這個(gè)原因也很簡(jiǎn)單,正因?yàn)?/span>shutdown
在環(huán)境變量中定義了它這個(gè)命令所在的路徑,而test
這個(gè)命令則沒(méi)有!
shutdown命令
的默認(rèn)路徑是在C:\Windows\System32
目錄下, 包括一些常見(jiàn)的cmd
命令其實(shí)都在這個(gè)目錄下
如圖

而C:\Windows\System32
這個(gè)路徑也是默認(rèn)安裝系統(tǒng)的時(shí)候就被定義在了環(huán)境變量
當(dāng)中, 就跟之前定義QQ
應(yīng)用程序也是一個(gè)道理!
如圖

所以根據(jù)這個(gè)道理我們也可以自定義一個(gè)環(huán)境變量
來(lái)進(jìn)行調(diào)用!
要知道變量、變量
就是一個(gè)可變化的量
我們就利用這個(gè)特點(diǎn)來(lái)自己定義一個(gè)系統(tǒng)變量
然后調(diào)用它來(lái)打開(kāi)某個(gè)應(yīng)用程序!
舉個(gè)梨子
我這里要打開(kāi)微信,當(dāng)然你完全可以依照之前的辦法在path
中把微信的WeChat.exe
路徑加入到其中, 但是這樣子做不夠靈活!
我們可以先在系統(tǒng)變量中定義一個(gè)weixin
然后值
設(shè)置為微信目錄地址!
我的地址為:D:\騰訊軟件\WeChat
選擇系統(tǒng)變量
點(diǎn)擊新建
輸入變量名
和值
變量名
英文即可!
值
就是微信的路徑
如圖


設(shè)置好了之后,我們現(xiàn)在就可以對(duì)它進(jìn)行調(diào)用!
然后再path
中把剛剛自定義好的weixin
這個(gè)變量加入到其中,格式為%變量名%
如圖

這樣一來(lái)以后你只需要去修改變量
的值 path
中就會(huì)自動(dòng)獲取到了!
接下來(lái)就可以去cmd
中嘗試一下打開(kāi)這個(gè)應(yīng)用程序吧!

所以通過(guò)以上的操作,只要是在cmd
中去執(zhí)行的應(yīng)用,其位置均儲(chǔ)存在環(huán)境變量
目錄值中,我們?cè)趫?zhí)行cmd
中的應(yīng)用時(shí),其實(shí)就是在遍歷環(huán)境變量
所有應(yīng)用程序的位置, 并且查看其中有沒(méi)有該程序!
如果沒(méi)有就會(huì)提示未找到
這種信息,如果在環(huán)境變量
中找到了你在cmd
中輸入的命令,那么通過(guò)環(huán)境變量
就可以直接去找到該程序并且執(zhí)行!

為什么編程開(kāi)發(fā)要配置環(huán)境變量??
知道什么是環(huán)境變量
以后,現(xiàn)在應(yīng)該明白我們?cè)陂_(kāi)發(fā)java、python、php
之前需要配置的環(huán)境變量的原因了吧
舉個(gè)梨子
比如Java
我們就需要把JDK
的bin目錄
添加到環(huán)境變量
的path
中,這樣我們就可以在任意目錄下使用bin
下面的.exe可執(zhí)行程序,javac.exe、java.exe
javac.exe
用來(lái)處理.java
源代碼文件,是把源代碼文件編譯
為字節(jié)碼文件
的一個(gè)工具,經(jīng)過(guò)javac.exe
這個(gè)工具編譯java源代碼文件
后形成的.class
就是字節(jié)碼文件
java.exe
用來(lái)處理.class字節(jié)碼文件
進(jìn)行執(zhí)行的,也就是JVM
解釋執(zhí)行java
程序, 從而實(shí)現(xiàn)java
程序的運(yùn)行
而他們都在bin
目錄下, 這都是為了能夠方便的使用這些開(kāi)發(fā)語(yǔ)言所帶有的編譯解釋工具和命令, 所以我們才要配置環(huán)境變量
如圖

要知道這也正是很多新手朋友剛剛?cè)腴T(mén)java
的一個(gè)難題, 如果環(huán)境變量
配置不成功,在cmd
中去輸入java
就會(huì)提示找不到某某
的關(guān)鍵詞 對(duì)吧!
然而java
的應(yīng)用程序開(kāi)發(fā)包就在安裝JDK
目錄下面的bin
目錄中, 并且所有跟Java
相關(guān)的工具都在bin
目錄中!

所以在開(kāi)始學(xué)習(xí)java
或者其他一些開(kāi)發(fā)語(yǔ)言的時(shí)候,為了操作方便必須要配置一下環(huán)境變量
從而達(dá)到能夠正常運(yùn)行java
的環(huán)境, 其他一些語(yǔ)言也是以此類推!


環(huán)境變量的一些小玩法??
既然我們知道了環(huán)境變量
中的path
可以被系統(tǒng)自動(dòng)檢索,那么我們就也利用這個(gè)特點(diǎn)來(lái)做一些配置!
舉個(gè)梨子
我們可以指定某個(gè)文件夾下的所有.exe
執(zhí)行程序都可以直接在命令行終端
里輸入其名稱,并且直接打開(kāi)!
你可以提前準(zhǔn)備好一些.exe程序
,并放入到一個(gè)tools
的目錄中,比如你把這個(gè)目錄建立在D:盤(pán)
下
如圖

然后你只需要把這個(gè)D:\tools
路徑配置到環(huán)境變量
的path
當(dāng)中
如圖

現(xiàn)在就可以通過(guò)命令行終端
直接輸入其執(zhí)行程序的名稱來(lái)直接打開(kāi)了!
如圖

但是這種辦法 可能會(huì)有一些弊端, 因?yàn)橛行?code>.exe執(zhí)行程序你拷貝到另外的文件夾是無(wú)法被正常打開(kāi)的!
既然是環(huán)境變量
我們就要用變量
的特性來(lái)解決這個(gè)問(wèn)題, 也就是用變量訪問(wèn)
指定文件夾列表的方式!
我們可以在系統(tǒng)變量
當(dāng)中自定義一個(gè)變量名
為TOOLS
那么它的值為如下
D:\Microsoft VS Code;D:\PotPlayer64;D:\Typora;D:\ReNamer;D:\Bandizip
也就是我們把vscode、PotPlayer、typora、renamer、bandizip
這幾種應(yīng)用的路徑
都賦值到一個(gè)變量
當(dāng)中
如圖

注意:
第一次輸出的時(shí)候,需要這樣進(jìn)行輸入,以后再添加直接點(diǎn)擊編輯就可以了
也就是以下這個(gè)樣子

也就是把多個(gè)路徑映射
到一個(gè)變量
上
然后再把這個(gè)TOOLS
變量添加到系統(tǒng)變量
中的Path
下, 加入的格式就為%自定義的變量名%
如圖

這樣子我們就可以通過(guò)終端命令行
來(lái)快速啟動(dòng)這些應(yīng)用了, 當(dāng)然前提你要知道這些應(yīng)用執(zhí)行程序的名稱!
如圖


最后??
看到這里了想必你已經(jīng)對(duì)環(huán)境變量
也應(yīng)該有一個(gè)基本的認(rèn)識(shí)了吧,也不會(huì)對(duì)環(huán)境變量
的配置感到復(fù)雜了!
環(huán)境變量
還有更多的玩法,也期待小伙伴勇于去發(fā)現(xiàn)其中的奧秘!??


大家的支持就是我堅(jiān)持的動(dòng)力!
如果文章對(duì)你有幫助的話就請(qǐng)
??點(diǎn)贊 ??評(píng)論 ??收藏
一鍵三連哦!
??????????
如果以上內(nèi)容有任何錯(cuò)誤或者不準(zhǔn)確的地方,????歡迎在下面 ?? 留個(gè)言指出!
或者你有更好的想法,歡迎一起交流學(xué)習(xí)????????????