1. 程式人生 > >JAVA核心技術I---JAVA基礎知識(命令列)

JAVA核心技術I---JAVA基礎知識(命令列)

一:命令列編譯檔案

手動在c:\temp建立cn.com.test.Man.java 
–即c:\temp\cn\com\test\Man.java
–c:\temp可以替換成任何路徑,後續命令同樣替換
編譯:
–X:\>java c:\temp\cn\com\test\Man.java
執行
–X:\>java -classpath .;c:\temp cn.com.test.Man
X代表任意碟符或路徑

二:執行class檔案

java -classpath .;c:\temp cn.com.test.Man
第一部分:java,執行命令,是java.exe的簡寫
第二部分:
-classpath 固定格式引數,可以簡寫成-cp. 第三部分:是一個(Windows分號,Linux/Mac冒號連線起的)字串。按分隔符隔開,得到一個個子路徑。當執行cn.com.test.Man類的過程中,如果需要用到其他的類,就會分裂第三部分的字串,得到多個子路徑,然後依次在每個路 徑下,再去尋找相應類(全稱,包名以點隔開對應到目錄) 第四部分:主執行類的全稱(含包名)
package cn.com.test;

public class Man{
    public static void main(String[] args){
        System.
out.println("Hello"); } }

三:編譯和執行規則

–編譯一個類,需要java檔案的全路徑,包括副檔名。
–執行一個類,需寫類名全稱(非檔案路徑),無須寫副檔名。
–編譯類的時候,需要給出這個類所依賴的類(包括依賴的類再次依賴的所有其他類)的所在路徑
–執行類的時候,需要給出這個類,以及被依賴類的路徑總和。
–classpath引數也可以包含jar包。如果路徑內有空格,請將classpath引數整體加雙引號。
–java -classpath “.;c:\test.jar;c:\temp;c:\a bc” cn.com.test.Man
按照路徑前後優先順序進行搜尋,其中空格隔開c:\a bc表示在這個c目錄下的a和bc資料夾下查詢檔案

(一)C.java編譯執行

package A.B.C;

public class C{
    public int number=10;
    
    public int getNum(){
        return number;
    }
    
    public void setNum(int num){
        this.number=num;
    }
    
    public static void main(String[] args){
        C c=new C();
        System.out.println("Hello C"+c.getNum());
    }
}
C.java

(二)F.java編譯執行

package D.E.F;

import A.B.C.C;

public class F{
    public int number=20;
    
    public int getNum(){
        return number;
    }
    
    public void setNum(int num){
        this.number=num;
    }
    
    public static void main(String[] args){
        C c=new C();
        c.setNum(13);
        System.out.println("Hello F"+c.getNum());
    }
}
F.java

四:總結

–包名和類所在的目錄必須嚴格一致
–在命令列中,必須依靠classpath來指引所需要的類
–編譯需要檔案的全路徑,執行需要類的完整