您好,登錄后才能下訂單哦!
本篇文章為大家展示了java中package和import機制的原理是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
CLASSPATH顧名思義就是class的路徑,當我們在系統中運行某個java程序時,它就會告訴系統在這些地方尋找這個class文件
CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar; 這是我們java默認環境變量設置。
“.”的意思是在當前這個文件夾找;%JAVA_HOME%\lib是在java安裝路徑的lib文件夾找;%JAVA_HOME%\lib\tools.jar是在java安裝路徑的lib文件夾的tools壓縮包中找。
現在讓我們來測試下吧:
在C:\DOM中新建HelloWorld.java
//: HelloWorld.java public class HelloWorld{ public static void main(String[] args){ System.out.println(“Hello World!”); } }
首先javac HelloWorld.java,系統會在這個目錄中找到HelloWorld.java文件,編譯出HelloWorld.class文件。Java HelloWorld,系統會先調用CLASSPATH路徑,我們設置了“.”這個目錄,所以會在當前目錄中找到HelloWorld.class。運行成功。
**換個地方運行這個程序
我們在C盤運行java HelloWorld**
系統會現在CLASSPATH路徑尋找HelloWorld.class。但是在”.”(現在是C盤)找不到這個文件。
我們現在把C:\DOM路徑加入到CLASSPATH
為了更新系統環境變量我們需要重新啟動dos窗口
系統會在CLASSPATH中找到C:\DOM這個路徑,再找到HelloWorld.class這個文件。運行成功。
現在我們明白了CLASSPATH的作用了^^
關于PACKAGE
我們來改寫這個程序,加入package
//: HelloWorld.java package a.b; public class HelloWorld{ public static void main(String[] args){ System.out.println(“Hello Wolrd!”); } }
編譯成功,但是不能運行。
系統在找到HelloWorld.class時就會讀取到package a.b;這個信息,這個告訴系統這個HelloWorld.class是要放在a文件夾的b文件夾中。但是現在我們的HelloWorld.class是在DOM這個文件夾。文件路徑和package不能對應,無法運行。
現在我們來新建a/b這個兩個文件夾,然后把HelloWorld.class復制到b文件夾中。然后再運行java HelloWorld
對不起!還是沒有運行成功。系統在CLASSPATH中尋找HelloWorld.class文件,但是這個文件被隱藏在a文件夾中的b文件夾。
我們來試試java a.b.HelloWorld
運行成功了,系統在CLASSPATH中的“.”文件夾找到a文件夾,然后b文件夾,找到HelloWorld.class文件。
現在明白package的作用了,它是一定要符合從CLASSPATH出發的目錄結構的。
關于IMPORT
Import的作用是當你調用另一個class的時候,告訴系統,要找哪里才能找到這個class。
我們在C:\DOM的目錄下寫一個調用a\b\HelloWorld.class的程序。
//: TestHelloWorld.java import a.b.HelloWorld; public class TestHelloWorld{ public static void main(String[] args){ HelloWorld hw=new HelloWorld(); hw.main(args); //調用HelloWorld中的main()函數,args是引數,會打印出HelloWorld! } }
編譯運行成功!
編譯:系統在個這個文件夾中找到TestHelloWorld.java文件,檢查import a.b.HelloWorld; 找CLASSPATH中找到a\b\HelloWorld.class。編譯通過完成!
運行:系統現在CLASSPATH中找到TestHelloWorld.class,然后讀取import a.b.HelloWorld; 導入HelloWorld.class,運行成功!
上述內容就是java中package和import機制的原理是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。