CLASSPATH是什么?它的作用是什么?
它是javac編譯器的一個環(huán)境變量。
它的作用與import、package關(guān)鍵字有關(guān)。
當你寫下improt java.util.*時,編譯器面對import關(guān)鍵字時,就知道你要引入java.util這個package中的類;但是編譯器如何知道你把這個package放在哪里了呢?所以你首先得告訴編譯器這個package的所在位置;如何告訴它呢?就是設(shè)置CLASSPATH啦 :) 如果java.util這個package在c:\jdk\ 目錄下,你得把c:\jdk\這個路徑設(shè)置到CLASSPATH中去!當編譯器面對import java.util.*這個語句時,它先會查找CLASSPATH所指定的目錄,并檢視子目錄java\util是否存在,然后找出名稱吻合的已編譯文件(.class文件)。如果沒有找到就會報錯!
CLASSPATH有點像c\c++編譯器中的INCLUDE路徑的設(shè)置哦,是不是?當c\c++編譯器遇到include <iostream>這樣的語句,它是如何運作的?哦,其實道理都差不多!搜索INCLUDE路徑,檢視文件!
當你自己開發(fā)一個package時,然后想要用這個package中的類;自然,你也得把這個package所在的目錄設(shè)置到CLASSPATH中去!
CLASSPATH的設(shè)定,對JAVA的初學者而言是一件棘手的事。所以Sun讓JAVA2的JDK更聰明一些。你會發(fā)現(xiàn),在你安裝之后,即使完全沒有設(shè)定CLASSPATH,你仍然能夠編譯基本的JAVA程序,并且加以執(zhí)行。
.....................................................................................................................................................
1. PATH環(huán)境變量。作用是指定命令搜索路徑,在命令行下面執(zhí)行命令如javac編譯java程序時,它會到PATH變量所指定的路徑中查找看是否能找到相應的命令程序。我們需要把jdk安裝目錄下的bin目錄增加到現(xiàn)有的PATH變量中,bin目錄中包含經(jīng)常要用到的可執(zhí)行文件如javac/java/javadoc等待,設(shè)置好PATH變量后,就可以在任何目錄下執(zhí)行javac/java等工具了。
2. CLASSPATH環(huán)境變量。作用是指定類搜索路徑,要使用已經(jīng)編寫好的類,前提當然是能夠找到它們了,JVM就是通過CLASSPATH來尋找類的。我們需要把jdk安裝目錄下的lib子目錄中的dt.jar和tools.jar設(shè)置到CLASSPATH中,當然,當前目錄“.”也必須加入到該變量中。
3. JAVA_HOME環(huán)境變量。它指向jdk的安裝目錄,Eclipse/NetBeans/Tomcat等軟件就是通過搜索JAVA_HOME變量來找到并使用安裝好的jdk。
在windows桌面上右擊“我的電腦” —> “屬性” —> “高級” —> “環(huán)境變量”,在“系統(tǒng)變量”里我們可以看到系統(tǒng)的各個環(huán)境變量的值。雙擊某個變量名可以修改變量值,變量值之間用“;”隔開。我們還可以“新建”原先沒有的變量。與jdk有關(guān)的有3個環(huán)境變量;“java_home”,“path”,“classpath”。我的系統(tǒng)中“path”變量已經(jīng)存在,可以直接添加新值(其它變量值不要動,防止其它程序運行異常),其它兩個變量需要新建。
“java_home”,設(shè)置jdk的安裝路徑,比如“e:\java\jdk1.5”,以下簡稱“%java_home%”。
“path”,設(shè)置jdk中各個程序的路徑,“%java_home%\bin;%java_home%\jre\bin;”
“classpath”,設(shè)置java各個類的路徑,“.;%java_home%\lib;%java_home%\lib\tools.jar”。前面的“.”不可少,它代表了我們?yōu)樽约旱膉ava類建立的工作路徑,其它的是jdk自帶的標準類庫路徑。
設(shè)置好環(huán)境變量后按“確定”退出。按“win”+“r”鍵進入“運行”窗口,運行“cmd”進入DOS窗口,在輸入“javac”后回車,如果有顯示java的幫助信息,就說明環(huán)境變量設(shè)置成功。
classpath= ".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar"
java_home = "C:\Program Files\Java\jdk1.5.0"
path ="%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin "