[Java] CLASSPATH環境變量的設置是否是必須的


以前學習過Java 的讀者可能對 CLASSPATH 環境變量不陌生,幾乎每一本介紹Java 入門的圖書里
都會介紹 CLASSPATH 環境變量的設置,但對於 CLASSPATH 環境變量的作用則常常語焉不詳。


實際上,如果使用1.5以上版本的JDK , 完全可以不用設置CLASSPATH 環境變量


那么CLASSPATH 環境變量的作用是什么呢?

當使用"java Java 類名"命令來運行Java 程序時,
JRE 到哪里去搜索Java 類呢?可能有讀者會回答, 在當前路徑下搜索啊。這個回答很聰明,但1. 4 以前
版本的JDK 都沒有設計這個功能,這意味着即使當前路徑己經包含了 HelloWorld.class , 並在當前路徑
下執行"java Hello World ",系統將一樣提示找不到HelloWorld 類。


如果使用1.4 以前版本的JDK,則需要在CLASSPATH 環境變量中添加點 (.) ,用以告訴JRE 需要
在當前路徑下搜索Java 類。


除此之外, 編譯和運行Java 程序還需要JDK 的lib 路徑下 dt.jar 和 tools.jar 文件中的 Java 類, 因此
還需要把這兩個文件添加到CLASSPATH 環境變量里。

提示:JDK9 的 lib 目錄已經不再包含 dt.jar 和 tools .jar 文件。

因此, 如果使用1.4 以前版本的JDK 來編譯和運行Java 程序,常常需要設置 CLASSPATH 環境變
量的值為.;%JAVA HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (其中%JAVA HOME%代表JDK 的安
裝目錄) 。

提示:只有使用早期版本的 JDK 時, 才需要設置 CLASSPATH 環境變量。

 

當然,即使使用JDK l. 5 以上版本的JDK ,也可以設置CLASSPATH 環境變量(通常用於加載第三
方類庫) , 一旦設置了該環境變量, JRE 將會按該環境變量指定的路徑來搜索Java 類。這意味着如果
CLASSPATH 環境變量中不包括點(.) ,也就是沒有包含當前路徑, JRE 不會在當前路徑下搜索Java 類。

如果想在運行Java 程序時臨時指定JRE 搜索Java 類的路徑,則可以使用classpath 選項(或用-cp
選項, -cp 是簡寫,作用完全相同),即按如下格式來運行Java 命令:

java - classpath dirl;dir2;dir3 .. .; dirN Java 類

-classpath 選項的值可以是一系列的路徑,多個路徑之間在Windows 平台上以分號(;) 隔開,在
Linux 平台上則以冒號(:) 隔開。

如果在運行Java 程序時指定了-classpath 選項的值, JRE 將嚴格按-classpath 選項所指定的路徑來搜
索Java 類,即不會在當前路徑下搜索Java 類, CLASSPATH 環境變量所指定的搜索路徑也不再有效。

如果想使CLASSPATH 環境變量指定的搜索路徑有效,而且還會在當前路徑下搜索Java 類,則可
以按如下格式來運行Java 程序:
java - classpath %CLASSPATH % ; .; dirl ; dir2 ; dir3.. .;dirN Java 類

上面命令通過%CLASSPATH%來引用CLASSPATH 環境變量的值,並在-classpath 選項的值里添加
了一個點,強制JRE在當前路徑下搜索Java 類。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM