1. 程式人生 > >JAVA為什麽要配置環境變量,怎樣配置

JAVA為什麽要配置環境變量,怎樣配置

虛擬 大小寫 原因 控制臺 生成 .exe 也有 表示 system32

軟件151 陶濤

自己總結些再加抄點:
安裝JDK後要配置環境變量,主要有三個:
1 JAVA_HOME ->為JDK的安裝目錄,如:F:\JAVA\jdk1.6.0_04
2 CLASSPATH ->到哪裏找需要執行的.class文件,如: .;%JAVA_HOME%\lib;
前面是一個點[.]再加一個分號[;]再以分號結束[;]
為什麽要加點[.]在編譯java文件時,如javac xxx.java 即會在當前目錄下生成xxx.class文件,
然後再用java xxx執行,系統會在當前目錄下找xxx.class文件,所以要加點,代表是在當前目 錄下找class文件來執行。
3 path ->javac.exe的執行程序路徑,如:%JAVA_HOME%\bin;
開始菜單->運行->cmd,在控制臺裏輸入regedit,回車後看到註冊表出來了!其過程是當輸入regedit時候,系統會去系統環境變量裏找這個程序的可執行文件路徑。打開系統環境變量的設置地方,會看到系統變量windir的值為%SystemRoot%(其實也就是c:\WINDOWS若系統裝在c盤的話),我們再打開c:\WINDOWS,可以找到一個叫regedit.exe的程序!
設置系統變量的目的:為了使系統可以找到程序的運行路徑!
在設置環境變量path時候,之所以要選擇C:\Java\jdk1.6.0\bin(JDK的安裝目錄)的原因呢?打開該目錄,發現裏面全是一些可執行文件,其中有我們最熟悉的javac.exe,java.exe等等。是啊,之所以要選擇bin是因為當我們在編譯程序的時候,在控制臺輸入javac Hello.java是,系統要去系統環境變量下面找javac.exe的執行程序路徑。

首先得介紹下面幾個參數的作用:
current directory(當前目錄):
當前在用的目錄就是當前目錄。比如說當你打開NOTEPAD,並處於運行狀態時候,當前目錄就是c:/windows;如果你用cmd命令打開命令行窗口,當前目錄就是c:\windows\system32; 如果你在用java這條指令,當前目錄就是JAVA下的BIN目錄所在的路徑,因為java.exe在bin裏面。
在java開發配置環境變量時,系統默認(我們對classpath不做任何設定時)的路徑也是當前目錄。
JAVA_HOME:
它是指jdk的安裝目錄,像D:\j2sdk1.4.2_16。
可以新建一個JAVA_HOME變量,它的取值為D:\j2sdk1.4.2_16。
為什麽要設置它呢,不設定可不可以呢?不設定也是可以滴,但是最好還是設置一下。
我們現在就當它是一個變量代換 JAVA_HOME = D:\j2sdk1.4.2_16,就是為了避免多寫字,它還有一個好處就是當我們需要改變某個jdk時,只需要改JAVA_HOME的值就可以了。等在後面看了Tomcat的啟動分析時你就明白了。
當在環境變量中引用它的時候要用%JAVA_HOME%來表示D:\j2sdk1.4.2_16。

Path:
系統變量Path告訴操作系統可執行文件(*.exe、*.bat等)所在的路徑,當OS(操作系統)發現某個*.exe時,windows默認從當前目錄開始查找這個命令,若查不到,OS就會到Path所設定的路徑中去尋找該命令,然後執行。
系統默認的系統變量為:Path = %SystemRoot%; %SystemRoot%\system32; %SystemRoot%\System32\Wbem
就是說處於上面3個目錄(多個變量用分號隔開)中的*.exe文件,可以在任意地方被執行(在 運行窗口能直接執行的命令,像cmd、notepad等,基本都在上面的3個目錄裏面),所以他們可以直接運行。
上面的%SystemRoot%是什麽意思呢?%SystemRoot%就是安裝操作系統的時候,系統默認的安裝路徑
若你的windows xp裝在C:/WINDOWS
則你的%systemRoot%路徑就是c:/windows
%systemRoot%只是一個符號,代表你的系統安裝目錄
下面是常見系統默認安裝路徑:
98----c:/windows
2000--c:/winnt
2003--c:/windows
xp----c:/windows
當我們要進行java開發時,OS經常需要用到java.exe、javac.exe等,(若jdk安裝在D:\j2sdk1.4.2_16)因此應該將D:\j2sdk1.4.2_16\bin(%JAVA_HOME%\bin)加入到系統的path中去。
註意:如果你加入的位置不是在最後,那還需要在bin後面加上英文狀態下的分號:%JAVA_HOME%\bin;多個變量之間要用分號隔開,如果它前面沒有,你就加一個。
明確一下:%JAVA_HOME%\jre\bin 這個路徑是不需要加入Path的。參考:http://java.sun.com/javase/6/docs/technotes/tools/windows/jdkfiles.html
CLASSPATH:
CLASSPATH是專門針對java的,它相當於windows的path;path是針對整個windows的。
CLASSPATH告訴java虛擬機(jvm)要使用或執行的*.class文件放在什麽地方。
所謂的JVM就好像是在微軟OS上面再激活另外一個OS,對JVM來說CLASSPATH就好像是對微軟OS來說的PATH,所以要用jvm開運行程序就需要設定classpath,然而jvm像windows一樣它也有個默認的查找class文件的路徑,對剛開始學習java的我們來說,默認的已經夠我們用了,那就是當前路徑,因此不設置classpath也可以。
在windows中 classpath 大小寫沒有關系,其他的環境變量名稱也一樣。
參照:
http://java.sun.com/javase/6/docs/technotes/tools/windows/classpath.html
如果你在classpath中用到 other resource files,那說明你已經熟悉classpath了,你可以自己隨意設置。
當我們不設定classpath時,系統默認的classpath是當前目錄,如果你個人想設置classpath的話,那麽務必在classpath中加入" ." ,這個英文狀態下的點就表示當前目錄。
至於classpath中要不要加入其他的路徑(包括文件目錄、包的根目錄等),這要看開發的需要,一般我們初學者是用不到的。
path的設置倒沒有什麽疑惑,但是classpath就有疑惑了,到底裏面該不該加rt.jar ,dt.jar ,tool.jar呢?
可以肯定的是rt.jar是不需要的,jdk會自動加載。你可以用 java -verbose 命令來查看。
我們可以來研究一下%JAVA_HOME%\lib底下的 tools.jar 和 dt.jar 是甚麽咚咚:
http://java.sun.com/javase/6/docs/technotes/tools/windows/jdkfiles.html 或者
http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jdkfiles.html
那tools.jar,dt.jar到底需不需要加進classpath呢?我查過一些資料,在Sun JDK 1.2及後續版本中,包含了一組可在程序運行時刻編譯和執行Java代碼的API。這些API被包含在tools.jar類庫中。這個功能允許Java程序在運行時動態編譯、執行小的代碼塊,在有些情況下這個功能會讓Java應用程序的架構更加靈活、開放。本來還有個例子我看得不是太懂,就不貼出來了。
如果您現在還未明白什麽是動態編譯或者是否需要“動態編譯java程序”,那就當作不需要;系統自己默認設定,閣下您也默認好了 ^_^
至於dt.jar包,在jdk1.4.0之後不用導入它,運行時會自動導入--這個是我在搜集了n個資料後選擇的一個較安全放心的答案
CATALINA_HOME:
長話短說了,tomcat啟動就不分析了,告訴你怎麽設就可以了,在Tomcat 4以前,用的是TOMCAT_HOME來表示Tomcat的安裝目錄,中間還用過TOMCAT_BASE,在Tomcat 4以後,采用了新的Servlet容器Catalina,所以環境變量的名字也改為了CATALINA_HOME,所以設置的時候不用把這3個變量都設了,要CATALINA_HOME就夠了。如果你安裝的是解壓縮版的也可以不用設置CATALINA_HOME,直接雙擊bin裏面的startup.bat就可以了,關閉的時候有shutdown.bat。
綜上:(在winXP中)以jdk安裝目錄為-D:\j2sdk1.4.2_16,tomcat安裝目錄為-D:\ApacheTomcat\apache-tomcat-6.0.14設置環境變量如下:你也可以參考http://java.sun.com/javase/6/docs/technotes/tools/windows/jdkfiles.html 自己決定那些是需要設置的。
JAVA_HOME = D:\j2sdk1.4.2_16
Path 環境變量中在最前面加入(若系統原來沒有就新建) %JAVA_HOME

JAVA為什麽要配置環境變量,怎樣配置