就如同,如果我們想要游泳,前提是需要一個泳池;如果我們想要打籃球,前提是需要一個籃筐一樣。
如果我們想要使用Java語言進行開發工作或者想要運行由Java語言編寫的程序,那么第一步工作就是搭建一個支持Java語言的環境。
首先我們需要認識Java為我們提供的這兩樣東西:
JRE - Java Runtime Environment (Java運行環境)
JDK - Java Development Kit? (Java開發庫)
顧名思義,如果你的目的只是單純想要在自己的系統環境下運行用Java語言編寫的程序,那么通過安裝JRE就足夠了。
而如果你是作為一名使用Java語言的開發者,就應當選擇安裝JDK了。而實際上JDK自身也包含JRE,這是必然的,因為作為開發者的最終目的也是編寫可運行的程序。([下載JDK](http://www.oracle.com/technetwork/java/javase/downloads/index.html))
現在就可以正式的開始在你的系統環境下搭建Java環境了,搭建的過程其實很簡單:
第一步:下載好JDK,找到安裝程序按操作提示進行安裝。沒有任何技術含量。
第二步:配置Java相關的環境變量。需要明確的是, 通常我們配置的相關環境變量有三個:Path,JAVA_PATH,JAVA_HOME;
在深入之前,我們還是先說一說配置環境變量的方法吧,以Win7操作系統為例:
**1.右鍵點擊你的“計算機” - “屬性” - “高級” - “環境變量”**
**2.新建一個名為“JAVA_HOME”的環境變量,其值為:你電腦上JDK的安裝路徑\bin,例如:C:\Program Files (x86)\Java\jdk1.7.0_45**
**3.找到名為“Path”的環境變量,在現有值的最前端加上:%JAVA_HOME%\bin;**
**4.新建一個名為“CLASSPATH”的環境變量,通常值我們配置為:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;****
事實上配置環境的步驟并沒有什么技術含量。可能當我們接觸java的第一天,就被要求記住配置它們的方法。
但其實這其中還是值得我們一看的,因為像我一樣的菜鳥可能通常掌握了配置方法,卻可能忽略了配置這些環境變量的目的是什么。
那不妨現在就讓我們來認識一下這些可能被我們忽略的地方。
首先看一下,這樣一種情況:
打開你電腦的命令行工具,然后輸入命令notepad,敲回車。
這時的情況是:你發現你電腦的記事本程序被打開了。
之所以在命令行輸入notepad命令,就可以打開window系統中的記事本程序。
其原因就在于環境變量的配置。所以我們可以以此為例,來認識配置環境變量的功用是什么。
還是老樣子,右鍵點擊你的“計算機” - “屬性” - “高級” - “環境變量” ,找到名為"path"的環境變量。
點擊打開查看它的值,然后,以我的電腦為例,你會發現類似于:C:\Windows\system32;這樣的值。
然后輸入該值進入到對應的系統路徑下,你會發現有很多.exe的應用程序,其中就有notepad.exe。
到了這里,我們似乎已經猜到了什么。那么,就不妨動手驗證一下,將path變量中的C:\Windows\system32刪掉。
這次我們重新在命令行中輸入notepad命令。發現得到這樣的提示:'notepad' 不是內部或外部命令,也不是可運行的程序或批處理文件。
這時我們其實已經知道了,簡單來說,配置Path的作用在于:
可以在任一路徑下調用到Path中配置過的路徑下的可執行程序。相反如果沒有設置過Path,那么想調用某個目的程序,就必須進入到它所在的路徑下。
這時,就讓我們回過頭看一下,我們在配置Java的環境變量時,
在Path里添加了類似如下的值:C:\Program Files (x86)\Java\jdk1.7.0_45\bin,
正如我們測試記事本程序所做的一樣,進入到值對應的系統路徑下發現:
該路徑下幾乎全是Java提供的相關的.exe可執行程序工具,其中最重要的兩個工具程序正是:java.exe與javac.exe!
javac.exe能夠對Java源文件進行編譯;java.exe用于查找和運行Java的可執行文件。
接著,前面介紹過了,實際環境搭建中,我們會配置一個名為"**JAVA_HOME**"的環境變量。
這個變量的作用實際很簡單,它的值永遠都是你的電腦上JDK的安裝路徑。
以我電腦上的配置為例,使用C:\Program Files (x86)\Java\jdk1.7.0_45\bin;和%JAVA_HOME%\bin;兩種方式作為環境Path的值,達到的效果實際一模一樣。
以面向對象的思想來講,我們可以認為我們將自己電腦上jdk的安裝路徑單獨封裝成了一個字符串對象"JAVA_HOME"。
因為環境變量PATH的值通常都有很長一串,所以我們使用JAVA_HOME的方式好處就在于:
如果我們JDK的安裝路徑發生了變化,就不用再打開Path變量,在一長串眼花繚亂的值里面去找到要修改的地方,
而直接找到"JAVA_HOME"變量進行修改就OK了。
最后,就是CLASSPATH環境變量的作用了。
要理解它的作用,首先要知道的是:在Java中,以".java"后綴結束的文件,被視為Java程序的源文件。
當編譯器對".java"文件成功編譯后,我們會得到一個同名的".class"文件,這個文件才是真正意義上Java的執行文件。
所以,我們配置CLASSPATH環境變量的目的實際就在于:設置虛擬機查找指定".class"文件的路徑。
舉個例子,就更容易明白了,我們寫一個HelloWolrd:
~~~
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello java!");
}
}
</span>
~~~
然后,打開命令行工具,利用javac工具對其進行編譯,編譯成功得到:HelloWorld.class文件。
我將該文件拷出來,放在我的**E盤**根目錄下。這時我們就可以來看一下CLASSPATH的作用了。
第一種情況,假設這時我們還沒有配置過CLASSPATH環境變量,這時我們在命令行通過:java HelloWorld命令想要運行該程序,結果得到如下信息:錯誤: 找不到或無法加載主類 HelloWorld
然后,我重新配置CLASSPATH為:E:。這時再通過:java HelloWorld命令運行程序,發現成功得到輸出信息:Hello java!
前面我們說,CLASSPATH的值通常配置為:".;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar";
值得注意的是最前面的".","."實際上代表的當前路徑。也就是說這樣配置虛擬機在運行一個程序時,會首先在你當前所在路徑下查找是否存在指定的".class"文件。
到此,關于Java開發環境的搭建的事,已經說的差不多了。最后總結一下三個環境變量配置的意義是什么吧。
JAVA_HOME:顧名思義,JAVA的家,也就是指當前計算機上JDK(或JRE)的安裝路徑。
PATH:用于設置Java中各種命令行工具的所在的文件夾路徑。通過PATH的設置可以保證在系統任一路徑下都能調用到Java相關的命令行工具。
CLASSPATH:JVM會在該環境變量下設置的對應該路徑下查找指定的.class文件運行。
注:
我們可以將:“計算機” - “屬性” - “高級” - “環境變量”這樣的配置方式視作一種“一勞永逸”的懶漢式配置方式。這樣配置的好處在于:一次配置后,永久有效。
同時還有另一種配置方式,在命令行工具中通過“SET”命令進行配置。這種方式是一種“臨時”配置方式,也就是說:配置的環境變量,只在當前運行的命令行程序中有效,當退出命令行后,所配置的環境變量也就失效了。
兩種方式各有長短,可以根據實際情況選擇使用。
- 前言
- 第一個專欄《重走J2SE之路》,你是否和我有一樣的困擾?
- 磨刀不誤砍材工 - 環境搭建(為什么要配置環境變量)
- 磨刀不誤砍材工 - Java的基礎語言要素(定義良好的標示符)
- 磨刀不誤砍材工 - Java的基礎語言要素(關鍵字)
- 磨刀不誤砍材工 - Java的基礎語言要素(注釋-生成你自己的API說明文檔)
- 磨刀不誤砍材工 - Java的基礎語言要素(從變量/常量切入,看8種基本數據類型)
- 磨刀不誤砍材工 - Java的基礎語言要素(運算符和表達式的應用)
- 磨刀不誤砍材工 - Java的基礎語言要素(語句-深入理解)
- 磨刀不誤砍材工 - Java的基礎語言要素(數組)
- 換一個視角看事務 - 用&quot;Java語言&quot;寫&quot;作文&quot;
- 牛刀小試 - 淺析Java的繼承與動態綁定
- 牛刀小試 - 詳解Java中的接口與內部類的使用
- 牛刀小試 - 趣談Java中的異常處理
- 牛刀小試 - 詳解Java多線程
- 牛刀小試 - 淺析Java集合框架的使用
- 牛刀小試 - Java泛型程序設計
- 牛刀小試 - 詳細總結Java-IO流的使用