JAVA核心技術I---JAVA基礎知識(命令列)
阿新 • • 發佈:2018-12-29
一:命令列編譯檔案
手動在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來指引所需要的類
–編譯需要檔案的全路徑,執行需要類的完整