CLASSPATH 以及包和目錄結構的關係 (轉)
CLASSPATH 中包含的的路徑中,每一個都是 package 的根,而在此目錄下的所有子目錄都可以成為 package,條件是,該目錄下有封裝在該 package 中的類。
說起來有些抽象,不太好懂,還是舉個例子:
set CLASSPATH=%_HOME%librt.jar;C:java
C:java 的結構如下:
C:java |-- myeditor |-- test | |-- | `-- `-- hello
那麼,C:java 就是一個 package 的根,在這個目錄下寫的 Java 都不需要使用 package 語句。而 test 目錄就是 package 根下的一個子包 test,因為寫在 test 中的 java 程式就需要寫一個 package 語句,如下
/** * C:javaTest.java * @author fancy */ pacakge test; ......
而 test 下的 xml 又是 test 的子包,其中的 java 程式應該如下:
/** * C:javatestTestXml.java * @author fancy */ pacakge test.xml; ......
當然,在 test 和 xml 目錄中的 java 程式也可以不寫 package 語句。如果這樣,需要在 CLASSPATH 中加上一個當前目錄 (.),如
set CLASSPATH=%JAVA_HOME%jrelibrt.jar;C:java;.
然後轉到相應目錄下,如
C:>cd javatest
再執行
C:Javatest>java Test
這樣也可以,因為 “.” 表示當前目錄是一個包的根。
使用包結構最典型的一個例子就是,將一個工程或專案 (Project) 作為一個包的根,然後再根據需要劃分子包,如上例目錄結構中,myeditor 就是一個小專案,可以作為一個包,假如在其中寫一個 MyEdtior 主類,那麼,完成之後應該使用如下語句執行:
java myeditor.MyEdtior
test 中根據測試程式的種類分出了 xml 包和 swing 包,那麼相應的執行就是:
java test.Test java test.xml.Test java test.swing.Test
這裡的三個 Test 類是分別寫在 C:javatest、C:javatestxml 和 C:javatestswing 中的,在程式的一開始分別有如下申明
/** C:javatestTest.java */ package test; ... /** C:javatestxmlTest.java */ package test.xml; ... /** C:javatestswingTest.java */ package test.swing; ...
最後還有一點需要注意:注意名和目錄名的大小寫,檔名的大小寫會影響類名的大小寫,而目錄名的大小寫會影響包名的大小寫。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-977212/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- maven--安裝,倉庫的種類和彼此的關係,標準目錄結構Maven
- Linux目錄結構-轉Linux
- mysql資料目錄結構(轉)MySql
- linux文件和目錄結構Linux
- apache中埠與目錄的關係Apache
- django的目錄結構Django
- SQLServeronLinux的檔案和目錄結構SQLServerLinux
- FreeBSD目錄結構一覽(轉)
- 微服務架構的理解以及和 RPC 的關係微服務架構RPC
- 資料結構相關部落格目錄資料結構
- 10g閃回區和歸檔目錄的關係
- PostgreSQL 目錄結構SQL
- fabric 目錄結構
- dedecms 目錄結構
- linux的目錄結構Linux
- Laravel的目錄結構分析Laravel
- linux的命令解析器和常用的快捷鍵(以及簡單的目錄結構)Linux
- [轉]DB2目錄檔案結構DB2
- 一張圖看懂Oracle邏輯結構和物理結構的關係Oracle
- [Android]API包、目錄結構、AndroidManifest.xmlAndroidAPIXML
- 第二章:介面和目錄結構
- iOS專案的目錄結構和開發流程iOS
- DedeCMS模板目錄的檔案目錄結構
- Tomcat目錄結構Tomcat
- 分析Angular目錄結構Angular
- Jmeter之目錄結構JMeter
- ecos框架目錄結構框架
- linux 目錄結構Linux
- 系統目錄結構
- 程式碼目錄結構記錄
- 教你玩轉Linux—系統目錄結構Linux
- Unix目錄結構的來歷
- 關於java 的 Classpath全解 (轉)Java
- Web Service和SOAP以及HTTP的關係? .WebHTTP
- maven中scope依賴範圍與classpath的關係Maven
- Hadoop HDFS結構示意圖以及互動關係說明Hadoop
- ORACLE包和過程依賴關係測試(轉)Oracle
- Linux系統目錄結構和ls命令Linux