Java環境的搭建

來源:互聯網
上載者:User

轉自http://blog.csdn.net/ghj1976/article/details/5543428

 

首先我們應該對 JDK,JRE,JVM 有所認知,下面這個圖就可以清晰的表述他們的關係:

JDK,JRE,JVM 的關係

一個更複雜的圖:這是 J2SE 1.5  具體功能圖表,在圖的左邊,我們可以清晰的看出哪些是JVM的範疇,哪些是JRE的範疇,哪些是JDK的範疇。

Java程式的執行邏輯

下面圖示範的是如何打造一個個人化的Java啟動器,這對我們理解Java執行的邏輯很有協助。是以Window環境打造個人化的Java啟動器的例子。

這幅圖來自: 打造個人化Java啟動器 

最常見的啟動器是Sun在Java Runtime Environment的/bin目錄中提供的啟動器,就Windows平台而言,它們是java.exe和javaw.exe。前者運行時開啟兩個視窗:一個是接收System.out/err和啟動器輸出的控制台視窗,另一個是Java程式本身的視窗;javaw運行時不開啟控制台視窗。

在J2SE/EE平台中,虛擬機器以動態庫的形式實現,也放在/bin目錄下。動態庫的名字在Windows中是java.dll,在Unix中是java.so。所謂“裝入虛擬機器”,就是指裝入這個動態庫。

找這個動態庫的邏輯是依次按照下面搜尋先後順序去尋找:

  • 先找目前的目錄下有沒有JRE
  • 再找父目錄下有沒有JRE
  • 接著在PATH路徑中找JRE
  • 註冊表HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment/ 查看CurrentVersion的索引值指向哪個JRE(這當然是windows下特有的。)

這不像 .Net ,.Net 引入了全域應用緩衝(GAC),一台機子,一個版本的 .Net Framework 就只有一套,就在GAC中,不用考慮這個尋找邏輯。

 

JRE 類庫的尋找

JRE內建的基礎類庫主要是JRE/lib/rt.jar這個檔案,包括了Java2平台標準版的所有類庫。和JRE的版本一致。

JRE中由ClassLoader負責尋找和載入程式引用到的類庫,基礎類庫ClassLoader會到rt.jar中自動載入,其它的類庫,ClassLoader在環境變數CLASSPATH指定的路徑中搜尋,按照先來先到的原則,放在CLASSPATH前面的類庫先被搜到.

Java程式啟動之前建議先把PATH和CLASSPATH環境變數設好。OS通過PATH來找JRE,確定基礎類庫rt.jar的位置。JRE的ClassLoader通過CLASSPATH找其它類庫。

 

 

JDK 的安裝

去 http://java.sun.com/javase/downloads/index.jsp 下載最新版本 JDK。 下載後安裝。 
Windows 下安裝完畢後需要設定三個環境變數

JAVA_HOME

指明JDK安裝路徑,就是剛才安裝時的路徑C:/Program Files/Java/jdk1.6.0_19,此路徑下包括lib,bin,jre等檔案夾(此變數最好設定,因為以後運行tomcat,eclipse,ant 等都需要使用此變數)

PATH

Path使得系統可以在任何路徑下識別java命令,設為:

%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin

CLASSPATH

CLASSPATH為java載入類(class or lib)路徑,只有類在classpath中,java命令才能識別,設為:

.;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar

(要加.表示當前路徑) 
%JAVA_HOME%就是引用前面指定的JAVA_HOME。

Linux 下則是要做如下設定(以我使用的 ubuntu 為例):

下載完後,我們就開始安裝了。(我們假設下載後的檔案名稱為jdk1.6.bin) 
在命令列下開啟其所在檔案夾,打chmod u+x ./jdk1.6.bin   (更改可執行許可權:u 表示該檔案的擁有者,+ 表示增加許可權,x 表示可執行) 
然後./jdk1.6.bin 
看到協議,一直敲Down鍵或者Enter鍵(協議還挺長的) 
最後看到 
Do you agree to the above license terms? [yes or no] 
尋問是否接受,當然是打y 斷行符號拉~ 
然後就看到它解壓縮 
解壓縮完後的預設檔案名稱是jdk1.6.0 
接著打 
sudo cp –r  jdk1.6.0 /usr/     (cp -r : 遞迴持續複製,用於目錄的複製行為。) 
把它複製到usr目錄裡去 
好了,到這裡就只差配置環境了 
export JAVA_HOME=/usr/jdk1.6.0 
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib 
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin 
打vi ~/.bashrc  (vi 的命令參看:http://yanxi.bokewu.com/blog93673.htm) 
進入使用者環境變數配置介面中,把上面的三行加入到最後,ESC,:wq 
儲存並退出 
這樣JDK就算配置好了~

參看: 
http://forum.ubuntu.org.cn/viewtopic.php?f=44&t=174375 
http://forum.ubuntu.org.cn/viewtopic.php?t=39742 
http://www.360doc.com/content/08/1012/12/61497_1749889.shtml 
http://forum.ubuntu.org.cn/viewforum.php?f=70

 

之後我們就可以寫一個超簡單的java程式。

依次: javac Test.java

java Test

來測試是否可以正常運行。

 

Eclipse 中我們也可以設定JDK的版本,

在我們的項目上右鍵Properties –> Java Compiler中將 –>  Compiler compliance level 設成我們需要的版本即可。

需要注意的是:Eclipse不內建jdk,它只需要jre就可以運行(不需要javac),因為它內建編譯器(plugin目錄裡有compile包)。

在運行時,則是由於JRE安裝時已經在環境中添加java這個命令(無論windows還是Linux),eclipse便利用它啟動startup.jar。但如果只用jre,因為沒有原始碼,eclipse就不能根據源碼產生庫中type的注釋了。

 

如何查看當前Java運行環境的版本?

在命令列下面使用 java -fullversion 可以對目前的版本的。 

 

 

參考資料:

JDK,JRE,JVM,三者的區別與聯絡 
http://www.blogjava.net/jzone/articles/271115.html

SDK、JDK、JRE和JVM的關係總結 
http://blog.csdn.net/achun2050/archive/2007/05/08/1600370.aspx

初步總結CLR和JRE運行機制 
http://developer.51cto.com/art/200910/158035.htm

如何讓java運行在指定版本的JRE中。 
http://hi.baidu.com/blueleopard/blog/item/cd46d4f9e5b91e5c252df286.html

怎樣運行JAVA程式 
http://wenwen.soso.com/z/q131473345.htm

java程式運行機制及運行過程 
http://www.cnblogs.com/xiaoQcn/archive/2010/01/26/1656394.html

關於JDK 
http://blog.csdn.net/yqj2065/archive/2005/02/28/305593.aspx

打造個人化Java啟動器 
http://www.pconline.com.cn/pcedu/empolder/gj/java/0404/346719.html

Linux系統下運行JAVA程式 JRE安裝和配置 
http://tech.ddvip.com/2007-08/118717162731923.html

JDK、JRE、JVM之間的關係 
http://www.cjsdn.net/post/view?bid=1&id=9965&sty=1&tpg=1&age=0

JDK下載安裝及其環境變數配置 
http://www.svn8.com/java/pz/20080531/729.html

Eclipse的編譯器和Sun的javac還真不太一樣 
http://www.javaeye.com/topic/318996

Eclipse設定項目jdk的問題 
http://tech.ddvip.com/2008-12/122855371598107.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.