在了解CLASSPATH變量之前,我們要先設置JAVA_HOME和path這兩個環境變量,讓JAVA環境可以成功地運行起來,然后,再開始我們的想法。


首先,我們在E盤下的test目錄下准備兩個目錄,分別叫HelloWorld和ClassPath,在HelloWorld目錄下編寫一個JAVA源文件——HelloWorld.java,而ClassPath目錄下為空。
然后在此目錄下分別用javac命令編譯,java命令運行,運行之后,我們發現一切正常,在沒有配置CLASSPATH環境變量時,程序成功的運行了。

然后,我們將CLASSPATH環境變量配置成E盤下ClassPath目錄的路徑,此時ClassPath目錄下仍為空。

我們再次回到HelloWorld目錄下,繼續使用java命令運行之前的程序。我們發現,程序不能運行了,明明當前目錄下有HelloWorld.class文件,但是,程序卻不能運行。

此時,我們將HelloWorld目錄下的HelloWorld.class文件移動到ClassPath目錄下。


然后在回到HelloWorld目錄下繼續運行HelloWorld程序,此時,在HelloWorld目錄是沒有HelloWorld.class文件的。但是,我們卻發現我們的程序居然運行成功了。

實際上,我們在任何目錄下運行HelloWorld程序,如:C盤根目錄下,都是可以運行成功的。因為ClassPath目錄下有HelloWorld.class。

好了,答案已經呼之欲出了。
結論1:在沒有配置CLASSPATH環境變量時,java命令在找class文件時是默認在當前目錄下尋找的。
結論2:配置過CLASSPATH環境后,java命令是按照CLASSPATH變量中的路徑來的尋找class文件的,這就是為什么CLASSPATH變量中配置沒有當前目錄時,即使當前目錄中有class文件,java命令仍然不能正常運行的原因。
在百度中正常的CLASSPATH環境變量的值

原文鏈接:https://blog.csdn.net/cuipp0509/article/details/74852740
