天天看點

環境變量JAVA_HOME, CLASSPATH和PATH的作用

        如何設定JAVA_HOME, CLASSPATH和PATH就不用介紹了,網上倒是有很多。之前也設定過好多次,但是一直沒有弄懂這裡面的意思,今天有看到關于相關的解釋(相關連結請點選這裡),友善後來者能看看,也是把自己學習的一個過程記錄下來,以後忘記了也能過來看到。

 以下為置JAVA_HOME,CLASSPATH,PATH的目的: 

1,設定JAVA_HOME: 

       一、為了友善引用,比如,你JDK安裝在C:\Program Files\Java\jdk1.6.0目錄裡,則設定JAVA_HOME為該目錄路徑, 那麼以後你要使用這個路徑的時候, 隻需輸入%JAVA_HOME%即可, 避免每次引用都輸入很長的路徑串; 

       二、歸一原則, 當你JDK路徑被迫改變的時候, 你僅需更改JAVA_HOME的變量值即可, 否則,你就要更改任何用絕對路徑引用JDK目錄的文檔, 要是萬一你沒有改全, 某個程式找不到JDK, 後果是可想而知的----系統崩潰! 

       三、第三方軟體會引用約定好的JAVA_HOME變量, 不然, 你将不能正常使用該軟體, 以後用JAVA久了就會知道, 要是某個軟體不能正常使用, 不妨想想是不是這個問題. 

2,設定CLASSPATH: 

        這是一個很有趣,當然也比較折磨初學者的問題, 這個變量設定的目的是為了程式能找到相應的".class"檔案, 不妨舉個例子: 你編譯一個JAVA程式---A.java, 會得到一個A.class的類檔案,你在目前目錄下執行java A, 将會得到相應的結果(前提是你已經設定CLASSPATH為"."). 現在, 你把A.class移到别的目錄下(例如:"e:\"), 執行java A, 将會有NoClassDefFindError的異常,原因就是找不到.class檔案, 現在你把CLASSPATH增加為:".;e:\"再運作java A, 看看會有什麼結果~~:)~~~, 一切正常, java指令通過CLASSPATH找到了.class檔案! 

示例如下:CLASSPATH = .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

3,設定PATH: 

        道理很簡單, 你想在任何時候都使用%JAVA_HOME%\bin\java如此長的字首來執行java指令嗎?當然不會, 于是, 你可以選擇把 %JAVA_HOME%\bin添加到PATH路徑下, 這樣, 我們在任何路徑下就可以僅用java來執行指令了.(當你在指令提示符視窗輸入你個代碼時,作業系統會在目前目錄和PATH變量目錄裡查找相應的應用程式, 并且執行.

示例:在Path後面添加;%JAVA_HOME%\bin

        對Linux有些熟悉的童鞋應該對上述解釋還是比較了解的,在Linux指令行中輸入export我們就可以看到目前使用者環境中的環境變量,我們之是以可以使用ls等指令也是類似于上面PATH的解釋,不用每次都調用很長的指令字首,而是告訴系統去環境變量中查找就可以了。