SCJP筆記_章十_開發

第十章 開發java

 

 

10.1 使用javac和java命令數組

考試目標7.1 給定一段代碼示例和一個場景,編寫代碼,使用恰當的訪問修飾符、包聲明和導入語句,與示例中的代碼交互(經過訪問或繼承)。spa

考試目標7.2 給定類的一個示例和一個命令行,肯定指望的運行時行爲。命令行

考試目標7.5 給定類的一個徹底限定名稱,該類在JAR文件的內部和/或外部部署,爲該類構造適當的目錄結構。給定一個代碼示例和一個類路徑,肯定類路徑是否容許代碼成功地編譯。code

 

10.1.1 用javac編譯blog

 

考試要求掌握的是 javac [options] [source files]繼承

 

用-d選項編譯,能夠改變類文件的目標位置.開發

例如部署

myProjectget

      |

      |--source

      |       |

      |       |--com

      |             |

      |             |--javaeye

      |                      |

      |                      |--HelloJava.java

      |                       

      |--classes

      |       |

      |       |--com

      |             |

      |             |--javaeye

      |                      |

      |                      |--(HelloJava.class goes here)

 

 若是你在source目錄中編譯HelloJava.java,並想將結果文件HelloJava.class放入class/com/javaeye目錄,則命令以下:

  javac -d ../classes com/javaeye/HelloJava.java

 其中../classes是編譯將要開始的位置,這個目錄必須是已經存在的,不然會出現編譯錯誤;後面的com/javaeye/目錄若是不存在,會自動建立.

 

10.1.2 用java命令啓動應用程序

 

java [options] class [args]

class文件寫.class擴展名

例如: java -DmyProp=myValue HelloJava x 1

意思是:建立名爲myProp的系統屬性(必須緊跟D,不能有空格),並將其值設置爲myValue.而後,啓動名爲HelloJava.class的文件,並向它發送兩個String變元,其值爲x和1.

 

使用系統屬性

java.util.Properties類

Properties p = System.getProperties();   //得到系統屬性

p.setProperty("key","value");  //添加屬性

p.list(System.out)   //打印到系統控制檯上

 

處理命令行變元

public static void main(String[] args) ,args就是命令行變元數組.也能夠寫成String...args

 

10.1.3 查找其它類

 

聲明並使用類路徑

UNIX          -classpath /com/foo/acct : /com/foo

WINDOWS -classpath \com\foo\acct ; \com\foo

-classpath簡寫爲-cp

 

包與查找

在package和import中使用的路徑是絕對路徑.

 

相對路性與絕對路徑

 

 

10.2 JAR文件

考試目標7.5 給定類的一個徹底限定名稱,該類在JAR文件的內部和/或外部部署,爲該類構造適當的目錄結構。給定一個代碼示例和一個類路徑,肯定類路徑是否容許代碼成功地編譯。

 

10.2.1 JAR文件與查找

建立jar文件:          jar -cf MyJar.jar myApp     將myApp下的全部文件打到MyJar.jar中

查看jar中的文件:    jar -tf MyJar.jar

 

jar命令會自動建立META-INF目錄,並在它裏面創建MANIFEST.MF文件.

 

編譯一個jar包中的.java文件:   javac -cp jar包的相對路徑 java文件

 

 

10.3 使用靜態導入

考試目標7.1 給定一段代碼示例和一個場景,編寫代碼,使用恰當的訪問修飾符、包聲明和導入語句,與示例中的代碼交互(經過訪問或繼承)。

 

10.3.1 靜態導入

注意:只能是import static,而不能是static import.   對於有相同常量名,方法名的類型要慎用靜態導入,編譯器分不清楚你到底想用哪個.

public class TestStatic {
	public static void main(String[] args) {
		System.out.println(Integer.MAX_VALUE);
		System.out.println(Integer.toHexString(42));
	}
}

//使用靜態導入以後,變成這樣
import static java.lang.System.out;
import static java.lang.Integer.*;
public class TestStatic {
	public static void main(String[] args) {
		out.println(MAX_VALUE);
		out.println(toHexString(42));
	}
}
相關文章
相關標籤/搜索