配置JDK時的環境變量的含義(轉)

在學習Java的過程當中,我們第一天就會學習到JDK的安裝。在安裝JDK的過程當中,一個很重要的環節就是設置操作系統的環境變量。一個是path,另一個是classpath。這兩個環境變量,很多初學者只是瞭解應該怎樣設置給背下來了,並不知道設置這兩個環境變量的作用是什麼?今天我們就一起來探索一下,因爲這兩個環境變量非常的重要,特別是classpath這個環境變量,對開發當中各種配置文件,部署描述符的編寫非常的重要!

首先看一下path這個環境變量的作用。要想明白path的作用,首先先要考慮一個問題,比如:

當我們在命令行當中,輸入”ipconfig”這個命令然後按下回車鍵之後,爲什麼能現實出當前計算機網卡的相關參數(包括IP地址,子網掩碼等)?請大家想一想!

其實仔細的想一想,就會大概的猜出來,其實但你執行ipconfig命令的時候,實際上是調用了一個程序,這個程序在什麼地方呢?在操作系統的安裝目錄當中,具體是在\WINDOWS\system32\ipconfig.exe這個位置。當你執行ipconfig的時候,其實就是運行了ipconfig.exe這個程序(如果大家想驗證的話,可以嘗試把ipconfig.exe這個文件剪切到其他的目錄裏面,再嘗試執行這個命令,就會發現這個命令已經不能執行了)。根據這樣的一個情況我們可以大概的猜測一下,就是當我們執行了javac和java這兩個命令的時候,也應該是類似的,就是說在硬盤上應該有java.exe和javac.exe這兩個文件。那麼這兩個文件在什麼地方呢?就在JDK安裝目錄下的bin目錄,大家去找一找,不難發現這兩個文件。那麼現在問題就來了,當我們在命令行當中執行某個命令的時候,操作系統是怎樣找到這個命令所對應的exe文件(有的時候是bat文件,因爲這種情況目前我們還用不少,所以在這裏就不再討論了)?

這個時候就輪到我們的path這個環境變量大限身手了。首先我們先看一下現在path的值是什麼,在命令行當中輸入set path 這個命令就可以看到了:

由這個結果我們可以看出,環境變量的值,是一系列的目錄,目錄和目錄之間使用“;”分割開。當你在命令行當中執行ipconfig 這個命令的時候,首先操作系統會從path變量所制定的第一個目錄,也就是”C:\Program files\Common Files\NetSarang”這個目錄當中尋找ipconfig.exe,如果沒有找到就會到第二個目錄當中尋找。以此類推,直到找到爲止。如果在Path所指定的所有目錄當中都沒有找到,就會報出一個錯誤。同樣的,如果你想在命令行當中編譯或者運行Java程序,就必須使用到JDK所提供的java和javac這兩個命令,所以我們要把java.exe和javac.exe所在的目錄加入到path這個環境變量當中,這樣操作系統就可以順利的執行這兩個命令了。

其次,我們看classpath的作用。在瞭解這個環境變量的作用之前,首先還是先要了解一下java程序運行的步驟。當我們執行“java Test”這樣的命令時,會啓動Java虛擬機,並執行如下的動作:

3.JPG

classpath的作用是體現在上述的第一個步驟。

執行“java Test”這樣的命令時,java虛擬機會尋找一個名爲Test.class的文件,然後由類裝載器裝載這個類,那麼問題就是類裝載器究竟要到哪個目錄裏去尋找Test.class這個文件呢?這個時候classpath就起作用了,classpath值的設置方式和path類似,都是一系列的目錄(當然還可能包括jar文件,其實jar文件也是目錄,目錄裏面有很多的class文件),java虛擬機就是到這些目錄當中去尋找所需要的class文件。比如說在我的g:\src目錄當中有一個Test.java文件,編譯過後生成了Test.calss文件。這個時候我們想執行這個文件,就要執行“java Test”命令,類裝載器會從classpath所指定的目錄當中去尋找Test.class這個文件,如果在classpath所指定的第一個目錄當中沒有找到,就到第二個目錄去找,直到找到爲止,如果在所有的目錄當中都沒有找到,就會報出一個錯誤。在一般的教科書上,都會讓學生把classpath的值設置爲“.”,這是因爲“.”代表的是當前目錄,什麼叫當前目錄呢?

3.JPG

當打開命令行時,在“>”之前的目錄就是當前目錄,也就是說在這個目錄下執行“java Test”命令,java虛擬機的類裝載器就會在g:\src下尋找Test.class文件。



發佈了26 篇原創文章 · 獲贊 11 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章