java中包的命令行(cmd)操作詳解


一、什么是包?

為了更好地組織類,防止在一個空間下出現類重名,Java提供了包機制。包是類的容器,用於分隔類名空間(類型於C++中的命名空間)。如果沒有指定包名,所有的示例都屬於一個默認的無名包(又稱缺省包,缺省,
可理解為“省略的值為默認值”,故而應讀“shěng ”。

   package語句必須是文件中的第一條語句。也就是說,在package語句之前除了空白和注釋之外不能有任何語句。所以一個文件只允許一個包存在,看代碼:

 

1 package aa; //聲明一個包(如果不聲明就為一個缺省包(也就是默認包))
2 package ccc;
3 public class a
4 {
5     public static void main(String[] args){
6       bb.cc.dd.b dog = new bb.cc.dd.b();
7       dog.fun();
8     }
9 }

 

編譯:

 

二、命令行需要用到的命令

 編譯:javac -d . 文件名.java

 解析:

   -d  的命令是:該選項用於指定生成的class目標文件的目錄。如果某個類是一個包的組成部分,則 javac 編譯時會將把該類文件放入指定包名的子目錄中,如果沒有就創建目錄。若未指定 -d 選項, javac 將把類文件放到與源文件相同的目錄中(也就是默認目錄)。

   .    的命令是表示把生成的.class文件放在當前目錄(注意前后都有空格),從JDK5.0開始,如果classpath環境變量沒有進行設置,Java虛擬機會自動將其設置為“.”,也就是當前目錄。比如前面是C:\>   那么你所輸入的命令就代表在c盤根目錄下進行操作.如果你想要把生成的.class文件放在其他位置比如d盤根目錄,那么命令就變為javac -d d:\ hello.java。

 

三、代碼    整體思路:先創建一個b.java文件里面有類b,然后聲明一個包的路徑bb.cc.dd,意思是把編譯好的.class文件放在bb的子目錄里的cc的子目錄里的dd中,然后創建一個a.java的文件里面有類a,聲明一個aa的包,然后在aa.java中引用b.java里面的b類(注意:之所以先創建b類,是因為b類里面要先編譯a類里面才能引用 創建b類的代碼:

 

1 package bb.cc.dd;
2 public class b
3 {
4     public void fun(){
5      System.out.println("哈哈哈哈");
6     }
7 }

 

編譯:javac -d . b.java
然后就在bb->cc->dd-> b.class  如:

再創建a類中的代碼(如果不導入包的話就用 . 來訪問):

1 package aa; //聲明一個包(如果不聲明就為一個缺省包(也就是默認包))
2 public class a
3 {
4     public static void main(String[] args){
5       bb.cc.dd.b dog = new bb.cc.dd.b();
6       dog.fun();
7     }
8 }

在使用import 的時候就方便點,效果和上面一樣,如:

1 package aa; //聲明一個包(如果不聲明就為一個缺省包(也就是默認包))
2 import bb.cc.dd.b; // 全部導入:bb.cc.dd.*
3 public class a
4 {
5     public static void main(String[] args){
6     b dog = new b();
7       dog.fun();
8     }
9 }

編譯:javac -d . a.java     

 

運行  java   包名.類名  如: java aa.a 

圖:

 

 

 

   


免責聲明!

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



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