1. 程式人生 > >javac和引數用法java命令的-d -cp

javac和引數用法java命令的-d -cp

兩個java檔案,Pac.java和A.java

package com.test;

class Pac {
 public static void main(String[] args){
  com.test.test2.A.test();
 }
}

package com.test.test2;
public class A{
 public static void main(){
  test();
 } 
 public static void test(){
  System.out.println("I'm AAAAAAAAAAAAAAAAAAAAAAA");
 }
}

其中,類A是Pac類的依賴類,沒有A.class檔案,Pac.java無法編譯通過。

首先,編譯A.java,class檔案產生在c:路徑下

 

然後,才是編譯Pac.java

  

意思是告訴jvm,需要用到的類路徑可以在c:\路徑下查詢,Pac.class檔案將產生在本地路徑下。

最後,執行Pac.class, -cp引數的意思是:缺乏的類可到c:\路徑下尋找。

2. 使用 -d <directory>編譯選項

  是不是覺得上面的編譯方法有點麻煩,能不能自動在當前路徑(或任意指定的路徑)下生成包層次呢?有!使用-d <directory>編譯選項就能做到。

 E:\java\src >javac

(其中的點表示當前目錄。d 和 . 之間有空格, .和後面的java檔名之間也有空格)  此時,在當前目錄下就生成了一個org\javaresearch目錄,並且輸出的.class檔案也在裡面。執行:E:\java\src >java org.javaresearch.HelloWorld

  系統列印:Hello World!

  如果你想把生成的類檔案集中存放在一個目錄中,比如:E:\java\classes下,那麼你首先建立這個目錄,然後編譯時:E:\java\src >javac -d E:\java\classes HelloWorld.java

 就可以把生成的類檔案放到E:\java\classes
目錄下,並且按照包層次相應的建立目錄路徑。你可以在E:\java\classes\org \ javaresearch下找到HelloWorld.class檔案。此時使用如下命令可以正確執行(注意如果要用到其它類,請在CLASSPATH設好):E:\java\classes >java org.javaresearch.HelloWorld