jdk和ant環境變數配置

來源:互聯網
上載者:User

windows下配置JDK環境變數:
      1.安裝JDK,安裝過程中可以自訂安裝目錄等資訊,例如我們選擇安裝目錄為D:/java/jdk1.5.0_08;

  2.安裝完成後,右擊“我的電腦”,點擊“屬性”;

      3.選擇“進階”選項卡,點擊“環境變數”;

      4.在“系統變數”中,設定3項屬性,JAVA_HOME,PATH,CLASSPATH(大小寫無所謂),若已存在則點擊“編輯”,不存在則點擊“建立”;

      5.JAVA_HOME指明JDK安裝路徑,就是剛才安裝時所選擇的路徑D:/java/jdk1.5.0_08,此路徑下包括lib,bin,jre等檔案夾(此變數最好設定,因為以後運行tomcat,eclipse等都需要依*此變數);
     

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

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

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

.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar (要加.表示當前路徑)

  %JAVA_HOME%就是引用前面指定的JAVA_HOME;

       6.“開始”->;“運行”,鍵入“cmd”;

       7.鍵入命令“java -version”,“java”,“javac”幾個命令,出現畫面,說明環境變數配置成功;

       8.好了,打完收工。下面開始你的第一個java程式吧。

linux下jdk環境變數的配置:

Linux 下使用“變數名=變數值”設定變數,並使用 export 命令將其匯出為環境變數。為了使每一次登入都自動化佈建好這些變數,你需要在 ~/.bash_profile 裡或者 ~./bashrc 裡進行設定,如

export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:.

設定 PATH 時用的 $JAVA_HOME 是指替換變數 JAVA_HOME 的值到 $JAVA_HOME 所在位置。如上句實際就是 export PATH=/usr/local/jdk/bin:$PATH。這句中 $PATH 也是同樣的作用,不過這裡的 PATH 是指以前設定的 PATH 變數的值,而非本次設定 PATH 變數的值。

注意,在 CLASSPATH 中包含了一個“目前的目錄 (.)”。包含了該目錄後,就可以到任意目錄下去執行需要用到該目錄下某個類的 Java 程式,即使該路徑並未包含在 CLASSPATH 中也可以。原因很簡單:雖然沒有明確的把該路徑包含在 CLASSPATH 中,但 CLASSPATH 中的 “.” 在此時就代表了該路徑,例如

假設在 /home/fancy/java 目錄下有可啟動並執行類 HelloJava.class,那麼

[fancy@matrix fancy]$ export CLASSPATH=/usr/local/jdk/jre/lib/rt.jar:. // 設定 CLASSPATH,注意最後的“.”
[fancy@matrix fancy]$ cd ~/java // 轉到 /home/fancy/java
[fancy@matrix java]$ pwd // 顯示目前的目錄
/home/fancy/java // 目前的目錄是 /home/fancy/java
[fancy@matrix java]$ java HelloJava // 運行 HelloJava
Hello, Java // 運行結果

各個環境變數的含義:

JAVA_HOME:該環境變數的值就是 Java 所在的目錄,一些 Java 版的軟體和一些 Java 的工具需要用到該變數,設定 PATH 和 CLASSPATH 的時候,也可以使用該變數以方便設定。

PATH:指定一個路徑列表,用於搜尋可執行檔的。執行一個可執行檔時,如果該檔案不能在當前路徑下找到,則依次尋找 PATH 中的每一個路徑,直至找到。或者找完 PATH 中的路徑也不能找到,則報錯。Java 的編譯命令 (javac),執行命令 (java) 和一些工具命令 (javadoc, jdb 等) 都在其安裝路徑下的 bin 目錄中。因此我們應該將該路徑添加到 PATH 變數中。

CLASSPATH:也指定一個路徑列表,是用於搜尋 Java 編譯或者運行時需要用到的類。在 CLASSPATH 列表中除了可以包含路徑外,還可以包含 .jar 檔案。Java 尋找類時會把這個 .jar 檔案當作一個目錄來進行尋找。通常,我們需要把 JDK 安裝路徑下的 jre/lib/rt.jar (Linux: jre/lib/rt.jar) 包含在 CLASSPATH 中。

ant環境變數的配置:

ANT_HOME=D:/apache-ant-1.7.0

ANT_PATH=%PATH%;D:/apache-ant-1.7.0/bin

前一個%PATH%表示對以前(jdk)環境變數的引用。



安裝不同版本的jdk:

我的機器上最開始安裝的是jdk1.6,後來因為工作需要又安裝了jdk1.4。但是,環境變數我並未更改,還是指向jdk1.6的路徑的。可是,在cmd視窗輸入 java -version 卻得到是1.4.2。 
查詢環境變數:

1.我的電腦->屬性->進階->環境變數

2. 系統內容變數(HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Environment) 
  目前使用者環境變數(HKEY_CURRENT_USER/Environment)
 
2個設定完全是一樣,都是指向1.6。 
為了搞清楚問題的原因,通過查詢相關的資料,原來是這樣的: 
JDK在安裝的過程當中將在註冊表會產生如下3個項目: 
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Development Kit 
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Plug-in 
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment 
同 時,JDK安裝程式將會把java.exe,javaw.exe,javareg.exe這3個可執行檔拷貝到%SystemRoot%/system32目錄下,由於%SystemRoot%/system32被作業系統預設的設定為最高優先權的PATH搜尋 路徑,因此可保證使用者在命令列任何目錄下可運行java.exe來啟動JVM。
查詢HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment得知CurrentVersion=1.4。 於是我手動將它修改為1.6後,然後運行java -version得到以下結果: 
Registry key 'Software/JavaSoft/Java Runtime Environment/ 
has value '1.6', but '1.4' is required. 
Error: could not find java.dll 
Error: could not find Java 2 Runtime Environment.
 
所以,不能簡單的修改註冊表的CurrentVersion值來達到更改啟動並執行JRE。若人為的修改CurrentVersion,會使得不同版本的java.exe載入與己版本不符的java.dll及 jvm.dll,將引起難以預料的後果! 
一 般地,當在系統中裝了兩套或多套版本的Java2 SDK,後面安裝的Java2 SDK會將自己帶的java.exe和javaw.exe拷貝到%SystemRoot%/system32目錄下,從而覆蓋先前版本的java.exe 和 javaw.exe,並且在註冊表中改寫CurrentVersion為後安裝的版本。所以建議在安裝Java2 SDK前,先卸載以前安裝的版本。

 

以下是在我在系統中安裝多個版本JDK的體驗:

       1、安裝JDK1.5以上版本:這可以保證任何版本的ECLIPSE都可以安裝(否則如果安裝JDK為1.3而ECLIPSE為高版本的會提示JDK版本低,安裝不了;有的如果先安裝了高版本的JDK,但一段時間後卸載了高版本的JDK,那麼電腦上只有低版本的JDK和高版本的ECLIPSE,則運行ECLIPSE時只會看到起動介面,而後消失)。

       2、安裝ECLIPSE,在安裝了高版本的JDK後,一般ECLIPSE安裝沒有問題

       3、視情況而定,看你要啟動並執行程式是哪個JDK的(有的程式是之前開發的使用的JDK版本可能是1.3的),如我現在要運行JDK1.3下的程式,我會

       (1)從別的電腦上拷貝已安裝好的JDK1.3檔案夾

       (2)將PATH,CLASSPATH指該檔案夾目錄

       (3)ECLIPSE/WINDOW/PREFERENCES/JAVA/INSTALLED JRES/在裡面添加並勾選JDK1.3,並勾除JDK1.5的。

       (4)將ECLIPSE/WINDOW/PREFERENCES/JAVA/COMPILER中的compliance設為1.3的版本即可。(如果選1.5可能會在命令環境編譯正確,但eclipse報錯:說java.lang.UnsupportedClassVersionError could
not found main class),還有可能出錯的就是在eclipse下預設包時編譯正錯,但使用自己建立的包時編譯其中的類失敗。

相關問題可以見:

http://www.blogjava.net/zhyiwww/archive/2007/01/16/94235.html

http://blog.csdn.net/ybyb14/archive/2007/05/09/1602230.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.