Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE

  • 2,495 views
Uploaded on

Java SE 7 技術手冊

Java SE 7 技術手冊

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,495
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
74
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 。取選之」名檔副的型類案檔知已藏隱「消取,籤頁」視檢「至換切並, 項選尋搜和夾料資 理管合組「行執請下 」 / , 」項選夾料資 具工「的上列具工行執先請中W indows 7 / ,名檔副到 W indows XP看法無下」管總案檔「在前目果如,擾困的時案檔名命新重成造會這,名檔副示顯不 Video設預下 在,名檔副的案檔到看以可你定確先請,前之式程寫撰式正在 Windows 2.1.1 撰寫 Java 原始碼 。馭駕易容此如是就作工計設式程的事從想你,為以地觀樂於過別萬千,節細種種的後之式程單簡這索探,得記要萬千,後之式程的單簡這成完在,而然,始開 示顯從要也書本 "Hello World" 。 示顯 Hello World":饋回到得並令指行執腦電求要以可就, 行一至甚(式程行幾單簡入鍵要只者學初" ),單簡很它為因?例範式程個一第作當來 用要麼什為。式程例範個一第 "Hello World"作當它將地次數無經已,上籍書或件文學教言語式程的多很,後之此自,上幕螢腦電在示顯字文 將來用, 身前的言語 是言語 (中籍書 ) "Hello World" C B the Language B" 的寫 在是現出的"A Tutorial Introduction to 個一第 Brian Kernighan "Hello World" 2.1 從"Hello World"開始 開始 稿草冊手術技 Java SE 7
  • 2. 元字 是或元字白空型半是能只白空 Tab。稱名的同不是說來式程 對 與 Java system ,寫小大母字分區式程 System Java 寫小大母字個每意注 。同相) ( 檔主的 名 HelloWorld 與須必稱名個這,稱名個這 HelloWorld.java HelloWorld 是就 ,子例 範 個這就 ,稱名 的後) (字鍵關 指是稱名別類 Keyword class 同相須必稱名別類與名檔主 。因原的名檔副示顯」管總案檔「讓須必您是就也這 是名檔副 .java :意注須必點幾有時寫撰案檔個這 http://notepad-plus-plus.org/ : NotePad++ 用 使 以 可 你 議 建 , 用好 很是 不 並 器 輯 編 字 文 純 的 建 內 中 Windows 示提 示提 示提 示提 式程 個一第 圖 式程 個一第 圖 式程 個一第 圖 式程 個一第 圖 Java 2.2 :碼式程寫撰下如並就, 輯編「行執鍵右按上 」 在著接,改更定確請,名檔副 HelloWorld.java改更否是問詢會統系, 為改 從名檔副的件文字文將於由, .java .txt 」 「 HelloWorld.java為 件 文 名 命 新 重 並 ,) 件 文 是 就 也 (」 件 文 字 文 「 增 新 請 , 式 程 寫 撰 中 .txt夾料資 在是都書本,案檔碼始原 寫撰來夾料資個一擇選著接 C:workspace Java 」名檔副的型類案檔知已藏隱「消取 圖 」名檔副的型類案檔知已藏隱「消取 圖 」名檔副的型類案檔知已藏隱「消取 圖 」名檔副的型類案檔知已藏隱「消取 圖 2.1 稿草冊手術技 Java SE 7
  • 3. ,例實 PrintStream 至考參 , out out 員成 public static 的別類 System 中) package(件套 java.lang 示提 示提 了用使你實其 示提 示提 。 字 "Hello World"文行一示顯置裝出輸的統系請是就,用作的述陳句這, (號分用要束結的述陳句一 ) ;每意注。 話句一「的中言語式程是就說地單簡,令指行一的中言語式程是述陳 」 System.out.println("Hello World"); :述陳行一的中當 看來 main() 撰寫陳述(Statement) 。數引列令命的定指者用使得取時式程行執在以 可 String[] args ,可即 為告宣,值回傳用不 void 以 main() 所,理處式方外例以是都,誤錯的程過行執式程 ,叫呼以可就 Java 例實別類成生用不 示表 ,行執開公 被以可示表 JVM static JVM ,員成 public 是法方 main() 。釋解以加素元個每就以可是還,義 意的字鍵關個每解理你後日實其過不,定規的中書格規是說然雖 示提示提 示提 示提 public static void main(String[] args) :是得定一式形的法方 定規中書格規,法方 main()main() 是點起的行執式程 Java, ) (點入進式程是就點起的行執式程 Entry point 定義 main()方法 。碼式程的息訊示顯句一了括包塊區的法方main() 而, ) (法方 了括包塊區的別類 Method main() ,中式程如 HelloWorld例,圍範碼式程別區在的目,對成兩兩號括大,塊區義定 與 號括大用使式程在 } { 定義區塊(Block) 。同相稱名別類開公與須必名檔主案檔且而,別類開公個一有能只是但,別類個數義定可案檔 個一,道知要只你止為前目就,別類開公是別類 .java 示 HelloWorld表,字鍵關 public 個有前 class 。中之」別類「在義定要都碼式程有所,定規式程 , ) Java HelloWorld (稱名別類上接後之,字鍵關的別類義定來用是 class 定義類別 :明說本基作例範個這對針先下以,念觀等) (數引列令命、點入進式程、義定) ( 別類、理管 Command line argument Class案檔及涉就式程的單簡個這,易容不並式程 個一第釋解手新對要,說實老 Java 。來出查檢易容不很這,元字白空型全了入輸心小不能可者學初些有 稿草冊手術技 Java SE 7
  • 4. 看看來 行執以可。令指個這有否是下徑路各找尋序依,序順徑路的定 echo %PATH%設中數變境環 照依會統系業作,時訊資徑路定指有沒而令指個一入鍵你當 PATH ?置位定指用不麼什為,時令指 行執範示後最 裝安章 第:問疑有會你且而,了煩麻太在實令 java JDK 1指下樣這是但,息消好是就息訊到看沒以所,束結地稍稍靜會後功成譯編 javac 置位式程具工定指 圖 置位式程具工定指 圖 置位式程具工定指 圖 置位式程具工定指 圖 2.4 :如例。置位的放存式程具工說統系跟你非除,的得曉不是設預統系,哪在放令指個那,式程具工個一行執要當!邊哪在放 到不找它,怨抱你跟在統系業作) javac (是這?麼什為?了敗失 W indows 敗失行執!喔喔 圖 敗失行執!喔喔 圖 敗失行執!喔喔 圖 敗失行執!喔喔 圖 ... 2.3 :令指 行 javac執並,C:workspace 至換切下如,式模字文啟開章 第照須必你,夾料資 的中夾 1 bin料資裝安 JDK 在放會就式程具工,後之 好裝,過談章 第, 是式程具工 JDK 1 javac器譯編的 Java ,行執中 在以可才, 為譯編須必 ,過談章 第 JVM *.class *.java 1 2.1.2PATH 是什麼? 是什麼? !了事回一麼怎是式程 個一第解了會就然自時屆,釋解細詳會還節章各後之書本在素元 Java關相,範規法文言語 是些這當先就,解瞭法無段階現果如,易容不實確念觀多 Java此如受接要子下一。了對就寫麼這式程 的本基個一:是的說想正真我實其 Java 。行換會不後串字出輸, 用使果如,行 print() 換後串字出輸示表 println() ,上式模字文至出輸) ( String 串 字 的 定 指將 , 法 方 的義定 println() 用使你 PrintStream 稿草冊手術技 Java SE 7
  • 5. :數變」 「輯編」數 PATH變境環統系「或」數變境環者用使「的中塊方話對數變境環在,鈕按」數變境環「的方下按,面頁」階進「至換切著接, 容內統系「入進, 定設統系階進「下按再要中 」 」 , 容內「行執鍵右鼠滑按並」腦電的我「上面桌取選以可 」W indows 7 Windows XP在。 定 設中」數 變境環統系「 或」數變 境環者用使「 在以可, 便方了為。定 PATH Video設新重要又式模字文啟開要次下,後式模字文個這掉關,定設中式模字文在過不 。徑路定指外額用不而 行執以可 javac就,後之成完定設。訊資 的有原用利以可才,時令指它其找尋此如,面後值定 PATH設在加附 有原將會常通,隔區作) (號分用使會,徑路個多有若時定設 PATH ; 數變境環 數變境環 數變境環 數變境環 定設 圖 定設 圖 定設 圖 定設 圖 PATH 2.6 徑 徑 :如例。徑 徑路路路路 為式方定設,定設來令指 用使以可, 定設要果如。令指的 SET PATH= SET PATH行執要你到找中 在以可才統系,訊資徑路的式程具工定設中 PATH 在要你 PATH 。息訊誤錯的 圖剛剛現出會 2.3就,時式程具工的定指到不找都徑路有所當,式程具工 到找會不都,後 javac (.exe)徑路有所中 完找統系,令指 入鍵果如,訊資 PATH 的 圖依而然 javac PATH 2.5 。因原的令指 行執接直以可就,後) ( 裝安章 第何為是就這,java JDK JRE 1 C:Windowssystem32到 份一放動自會式程裝安) ( 的 java(.exe) ,時) ( 裝 JRE JDK Windows JRE JDK安為因是這, 有實確中當現發會, java(.exe) 看查你若。行執 C:Windowssystem32就話的到找 式程具工 無有徑路個一下找再有沒果如,式程具工 ... java(.exe) java(.exe)無有找始開徑路個一第從會統系,令指 入鍵你果如,訊資 的 圖依 java PATH 2.5 訊資 訊資 看察 圖 訊資 看察 圖 訊資 看察 圖 看察 圖 PATH 2.5 :訊資徑路些哪括包中數變境環 PATH 統系前目 稿草冊手術技 Java SE 7
  • 6. 數變統系 數變統系 數變統系 數變統系 Path 輯編 輯編 輯編 輯編 2.8 圖 圖 圖 圖 。定設成完」定確「按著接,隔區定設徑路為作,號分個一著跟緊後然, ) FilesJavajdk1.7.0bin (徑路的錄目」 「C:Program 入輸方前最的位欄」值數 bin JDK 變「於,鈕按」輯編「下按,後數變 取選 圖如可,例為數變統系定設以 Path 2.7 。定決果結的定設所 以則,數 SET變境環定設令指 用使果如。數變境環者用使」加附「再數變境環統系是會,數 SET變境環的得獲,時式模字文個一啟開。者用使別個響影只數變境環者用使而,者用使的入登個每至用套會,定設的數變境環統系,中統系的用共人多許允以可個一在 數變統系或數變者用使定設 圖 數變統系或數變者用使定設 圖 數變統系或數變者用使定設 圖 數變統系或數變者用使定設 圖 2.7 稿草冊手術技 Java SE 7
  • 7. :的通不行是都式方個幾下以? 行執何如,看想想, 至換切著試你請,來下接 HelloWorld C: 。息訊誤錯有會而反 加附,名檔副 加 .class .class附用不, 了以可就 入鍵要只,式程具工 ) javac 行執像就(稱名別類定指要 javac.exe只,時 行執 求要而, 是令指的 動啟,示所 圖如 HelloWorld JVM java JVM 2.9 了現出 了現出 了現出 了現出 個一第 圖 個一第 圖 個一第 圖 個一第 圖 Hello World 2.9 令指 令指 :令指 令指 行執 行執 行執 行執 HelloWorld JVM 求要, 求要, 求要, 求要, JVM動啟 要動啟 要動啟 要 是名檔副檔行執可的 是名檔副檔行執可的動啟要來下接, 是名檔副檔行執可的 ,過說章 第, 是名檔副檔行執可的 .class JVM 1 HelloWorld.class現出會就下夾料資同相,後之 譯編成完 HelloWorld.java 2.6 圖如在 2.1.3JVM(java)與 CLASSPATH ( ) 。定決 果結的定設 以會,數變境環定設令指 用使為因,令指 SET SET SET 用使就那,更變限權有沒果如。 數 變 境環 統 系 改 修議 建, 數 變 PATH 境環統系改修限權夠足有你果如。 的定設中 數變境環統系 JDK PATH 到行執會也,頭前最在設徑路 的要想將中 數變境環者用使 JDK PATH 在你使即, 個某好定設經已中 JDK 數變境環統系若,數變境環 PATH 者用使加附數變境環統系是會,數變境環的得獲時式模字文啟開於由 示提 示提 示提 示提 作動的作要定一是訊資 。作動的作要定一是訊資 作動的作要定一是訊資 作動的作要定一是訊資 PATH定確定確定確,要重常非 或 的本版個哪了行執定確,中腦電的 或 個多了定確 JRE JDK JRE JDK裝安在,式程具工的下 個哪行執定決將,序順的定設中徑路 ,時 上以 JDK Path JDK個兩裝安中統系若,行執接直會就式程具工的定指到找下徑路果如,始開方前最從會,時徑路 尋搜統系為因是,方前最的數變 在放徑路 的 將議建 Path Path bin JDK 稿草冊手術技 Java SE 7
  • 8. :定指來數引 -classpath 用使以可?置位的) .class (檔行執可知告時 JVM 動啟在何如 。 CLASSPATH 看 只 ) ( 檔 行執 可 尋 搜 , .class 看 是 檔 行 執可 尋 搜 統 JVM PATH 系業作體實,數變境環的次層同不是就本根 與 意注 意注 意注 意注 CLASSPATH PATH .class CLASSPATH JVM 、 .exe .bat PATH Windows 檔行執可 檔行執可 檔行執可 檔行執可 徑路尋搜 徑路尋搜 徑路尋搜 徑路尋搜 統系業作 統系業作 統系業作 統系業作 與 表 CLASSPATH 2.1 PATH : CLASSPATH與 照對地楚清很以可就,照對的單簡個作 PATH 與 用 JVM Windows 。訊資徑路的) (檔行執可其定指 .class 過透是式方,案檔找尋下徑路些哪到統系業作擬虛個這 訴告要就CLASSPATH JVM你,) (檔行執可個某行執中 在想。案檔的 為名檔副是就檔行執可 .class JVM .class,說來 對,統系業作的得認一唯式程 是 ,調強直一就章 第從 JVM Java JVM 1 。 案檔的限權行執有是就等 對,案檔的 ) Linux名檔副 、 是就,說來 .exe .bat 對如例(案檔行執可到找圖試,訊資徑路的 Windows中 依會,時令指個某行執下統系業作體實,過提中」?麼什是 PATH 「在 PATH 。) (檔行執可的定指行執 求要示表,稱名別類著接後之, 動啟 ) (檔行執可的定指行執 求要示表,稱名別類著接後之, 動啟 ) (檔行執可的定指行執 求要示表,稱名別類著接後之, 動啟 ) (檔行執可的定指行執 求要示表,稱名別類著接後之, 動啟 .class JVM JVM於在的目令指 行執於在的目令指 行執於在的目令指 行執,言所前先如正?的用麼什作是令指個這 道知要你於在的目令指 行執 java java ?呢 ?呢 ?呢 ?呢 行執麼怎 圖 行執麼怎 圖 行執麼怎 圖 行執麼怎 圖 HelloWorld 2.10 稿草冊手術技 Java SE 7
  • 9. 夾料資前目括包時案檔別類尋搜示表 定指 夾料資前目括包時案檔別類尋搜示表 定指 夾料資前目括包時案檔別類尋搜示表 定指 夾料資前目括包時案檔別類尋搜示表 定指 . 2.12 圖 圖 圖 圖 :如例。定指 用使以可則,案檔別類 .找尋始開夾料資前目從也望希,候時的有。息訊誤錯示顯而到不找是就然當果結,尋找中 的定指到地實老是還 ,案檔別類尋搜中 C:xyz 到定指時 動啟 JVM C:xyz JVM你,) 有中其( HelloWorld.class 在是徑路作工然雖,示所圖上如 C:workspace 案檔別類到不找中 案檔別類到不找中 案檔別類到不找中 案檔別類到不找中 的定指 圖 的定指 圖 的定指 圖 的定指 圖 CLASSPATH 2.12 。主為的定指你以則, 。主為的定指你以則,:如例。主為的定指你以則, 。主為的定指你以則, 定指行自果如, 的中夾料資前目取 定指行自果如, 的中夾料資前目取 定指行自果如, 的中夾料資前目取 定指行自果如, 的中夾料資前目取 CLASSPATH .class讀是就讀是就讀是就讀是就 的設預 的設預 ?呢 的設預 的設預 CLASSPATH 定指別特用不 圖麼什為 JVM CLASSPATH 2.9 。 圖如(息訊誤錯文中的善友較比有會本版 ) 2.10的後 而,息訊 JDK7 java.lang.NoClassDefFoundError 現出會本版的前 JDK7,案檔別類的定指到不找都中訊資徑路 的 在果如。入載先到找先 CLASSPATH JVM,贏先到找先,案檔別類的應對有否是尋搜,序順徑路 依會 CLASSPATH JVM java -cp C:workspace;C:classes HelloWorld :如例。隔區別分用以可則,訊資徑路個多有果如。用常較比這, 式形寫縮個有 ,示所 圖如 -cp -classpath 2.11 定指時 動啟 圖 定指時 動啟 圖 定指時 動啟 圖 定指時 動啟 圖 CLASSPATH JVM 2.11 稿草冊手術技 Java SE 7
  • 10. :息訊誤錯現出會將,譯編下如你果如 案檔 案檔 案檔 案檔 .class的好譯編已用使 圖 的好譯編已用使 圖 的好譯編已用使 圖 的好譯編已用使 圖 2.13 :別類 用使下如, 個開中 Console Main.java C:workspace在以可你, 好譯編已個有中 Console.class 認確,中 C:workspaceclasses Lab 至製複之將請,夾料資C:workspace 個有中夾料資 中碟光在 classes labs/CH2 2.1.4 編譯器(javac)與 CLASSPATH 編譯器 ) 。到談會才面後書本,題議階進是 這,制機器入載別類解了要則,式方入載別類解了要想,訊資的用 使) (器入載別類式程用應給是實其 AppClassLoader 示提 示提 示提 示提 CLASSPATH 。上定設的數變境環統系在用適也,式方定指的新 中 Classpath Java SE 6 java –cp .;C:jars* cc.openhome.JNotePad :案檔 有所下 用使定指如例。案檔 有所中夾料 JAR C:jars .jar *資用使示表 用使以可,始開 從,案檔 多許有中夾料資個某果如Java SE 6 .jar 。主為定指的 或 以則, -classpath -cp CLASSPATH定指 或 了用使,時行執果如。中數變者用使或數變統系在定設以可也 -classpath -cp, 個某用套以可都式模字文啟開次每望希果如。效失會就後之式模字文 CLASSPATH閉關在定設的中式模字文,地樣同。數變境環 取讀會就, CLASSPATH CLASSPATH定指 或 用使沒若,時 -classpath 行執是就也,時 -cp 動啟在 java JVM SET CLASSPATH=C:classes;C:libabc.jar;C:libxyz.jar :如例。定設數變境環過透以可也實其,用使常很徑路別類些有果如 java -cp C:workspace;C:libabc.jar;C:libxyz.jar SomeApp :下如以可,案檔別類的中案檔 用使要若時行執,下 JAR底 在放 C:lib 與 有,如例,夾料資的別特作當案檔 將是案答 xyz.jar abc.jar JAR?定設中 在何如,案檔 個有你果如,麼那,案檔 堆一含包中 CLASSPATH JAR .class當,縮壓式格 用使際實案檔 。案檔的 為名檔副是就也,案檔) ZIP ) ) ) JAR .jar Archive ( ( ( 為裝封會,案檔別類的中庫式程些這,庫式程了發開 用使果如 (JAR Java Java 稿草冊手術技 Java SE 7
  • 11. 注,」.;classes 「定指是,時 定指 圖以所,別類的到用使找尋中 CLASSPATH 2.16CLASSPATH 的定指在會只就, 了定指時 行執果如,了忘別 CLASSPATH JVM 功成行執 與 功成行執 與 功成行執 與 功成行執 與 到找 圖 到找 圖 到找 圖 到找 圖Main Console 2.16 :了以可就行執下如果如。別類 Console 到不找 以所, 定指 跟了忘時行執 JVM CLASSPATH JVM你為因,別類 Console 到不找時行執是因原,行執法無但,了功成譯編次一這 誤錯的別類 誤錯的別類 誤錯的別類 誤錯的別類 到不找時行執但,功成譯編 圖 到不找時行執但,功成譯編 圖 Console 到不找時行執但,功成譯編 圖 到不找時行執但,功成譯編 圖 2.15 :如例。案檔 找尋邊哪到器譯編 訴告, .class javac CLASSPATH定指須必也,時庫式程別類它其到用使要果如,時器譯編定指須必也,時庫式程別類它其到用使要果如,時器譯編定指須必也,時庫式程別類它其到用使要果如,時器譯編定指須必也,時庫式程別類它其到用使要果如,時器譯編 用使在 用使在 用使在 用使在 javac,上實事, ) (裡哪在別類 到不找它,怨抱在器譯編 cannot find symbol Console 誤錯譯編的別類 誤錯譯編的別類 誤錯譯編的別類 誤錯譯編的別類 到不找 圖 到不找 圖 到不找 圖 到不找 圖 Console 2.14 稿草冊手術技 Java SE 7
  • 12. :式程行執下如以可你。案檔 與 Main.class Console.class到看中夾料資 在會 ,後成完 譯 編,譯編行進 併一 也碼始原別類 關相的 classes到用使將會器譯編,夾料資放存碼元位的成完譯編了定指 而,案檔碼始原找尋中夾 -d料資 從定指 src 用使邊這,置位放存案檔碼始原的別類 -sourcepath ,器譯 Console編訴告須必你,別類 Console 到用使要中碼式程於由,時 譯編在 src/Main.java 譯編行進 與 譯編行進 與 譯編行進 與 譯編行進 與 定指 圖 定指 圖 定指 圖 定指 圖 -d -sourcepath 2.17 :譯編行進下如後然,夾料資 至換切,下式模字文在以可你。夾料資 Hello1 至放存定指 classes能望希,案檔碼元位的好譯編而,案檔碼始原置放來用將夾料資 ,說地單簡 src 。同相 圖與容 2.13內的 而, 寫撰何如它心關用不你前目(碼始原的別類 ) Main.java 中 是 Console 2.1.4就 中其,案檔個兩 Console.java 與 有中夾料資 ,夾料資 Main.java Console.java src 與 有中夾料資classes src ,中 至製複夾料資 Hello1 的夾料資 C:workspace Hello1 Lab 中碟光將 請。 題問的起 一在 放都 案檔 碼元位 與 案檔碼始 原決解 先 須必先首labs 2.2.1 編譯器(javac)與 SOURCEPATH 編譯器( ) 。案檔碼元位與嗎始原理管地率效有要需你,亂混麼多有會,起一在放還案檔 與 堆一,大稍模規式程果如,下一像想,起一在放都 .class .java) (案檔碼元位與案檔) (碼始原, .class 的你前目下一察觀來 .java C:workspace 2.2 管理原始碼與位元碼檔案 http://caterpillar.onlyfun.net/Gossip/JavaEssence/ChickenOrEggFirst.html :討探步一進有址網下以,因原的定指 CLASSPATH用是也,時訊資徑路案檔 關相要需 ,何為是就也這 .class javac,上之 於行執,的寫撰 是也多大,式程具工等 ?嗎道知你 示提 JVM 示提 示提 示提 Java javac 。 的下 及以 Console.class classes, Main.class 的下夾料資前目到找以可才樣這,夾料資前目示表這, 「的始開一意 」 . 稿草冊手術技 Java SE 7
  • 13. Main則,變改有沒並碼始原的別類 ,後譯編次上從且在存果如,別類 的成完 Main譯編有經已否是中 查檢著接,後之徑路尋搜碼元位與碼始原認確 CLASSPATH 。徑路前目尋搜會設預, ( ) 定指有沒於由, 「個那那後最意留,等 是像,案檔 的設 -classpath -cp」 . rt.jar JAR預多許括包徑路的碼元位尋搜設預實其,現發以可你, 碼元位別類的譯編已有否是,中 尋搜會後然,碼始原別類的到用使有是不是 ) 定指例上(夾料 CLASSPATH src資的定指 尋搜先會,時譯編在,份部線虛看看要主最,言而學初就 -sourcepath 定指時譯編 圖 定指時譯編 圖 定指時譯編 圖 定指時譯編 圖 -verbose 2.19 :別差的 與 解了 CLASSPATH SOURCEPATH於助有這,程過的時譯編行進器譯編到看,數引 定指時譯編在以可你 -verbose 別類 的中 別類 的中 別類 的中 別類 的中 行執定指 圖 行執定指 圖 Main 行執定指 圖 行執定指 圖 classes 2.18 稿草冊手術技 Java SE 7
  • 14. 。論討以加會節章後之,題議階進個是這,關有器入載別類與實其,徑路尋搜的案檔 些那是就也,徑路尋搜別類的設預 示提 示提 示提 示提 JAR JVM 。 為 的定指 譯編只而, Main.class Main.java 譯編新 javac Console.class重需無此因,碼元位別類 到找以所,夾料資 Console 括包中 classes CLASSPATH於由,) 的 後 最 意注 ( 案 檔 碼 元 位 尋 搜 中 classes 在, 案檔碼始原位 classes尋搜中 在會以所,src 為 而, 為 classes 了定指次這,到意注 -cp src -sourcepath 與 與 與 與 定指時譯編 圖 定指時譯編 圖 定指時譯編 圖 定指時譯編 圖 -cp -sourcepath 2.20 :如例。 classes為 定指 該應 ,言而 例上 就, 此因 , 間時 省節 較比 會譯編 新重 需無 ,改 修有 沒 並 -cp碼始原,後譯編次上且,碼元位在存已中徑路別類若時譯編以所,作工的時費常非是會那, 為譯編 將新重要都次每果如,別類的計萬以數有會中案專際實 .class .java 。 中 classes至放存 並 出譯 編新重此 因 ,碼元 位別類 Console.class 到不找 以 所,夾 Console料資 括包不並 classes 於由,言而例上就,別類 CLASSPATH 譯編新重則 Console,在存不果如,譯編新重需無則,變改有沒並碼始原的別類 ,後譯編次上 Console從且在存果如,別類 Console 的成完譯編有經已否是中 查檢著接 CLASSPATH 。 中 至放存並 classes 出譯編新重此因,碼元位別類 到不找以所,夾料資Main.class Main 括包不並 classes 於由,言而例上就,別類 譯編新重則,在存不果如,譯編新重需無CLASSPATH Main 稿草冊手術技 Java SE 7
  • 15. :義意的上理管種四有具會就,時類分行進 用使始開碼始原別類當 package 。突衝名同生發稱名件套 的位 單或 織組 它 其與會 不較 比, 式方名 命的樣 這 , 的二 無一獨 是址 網的位單或織組於由, 為名命來過反會就件套, cc.openhome opehome.cc是址網的我,說來例舉,名命址網的位單或織組用會常通,名命的件套 示提 示提 示提 示提 類分 類分 類分 類分 在放別類 將 圖 在放別類 將 圖 cc.openhome 在放別類 將 圖 在放別類 將 圖 Main 2.22 :下類分的 cc.openhome 在放將別類 示表這,字文的白反圖 Console下入鍵頭開在, 的中夾料資 Main.java中 啟開器輯編字文用再請 Hello1/src 2.2.2 ) 。 )) ) (件套 (件套 (件套 (件套 package cc.openhome.util 在放將別類個這 ,說來語 Console術的 以,下類分的 Java cc.openhome.util 在放將別類 ,示表這 Console 類分 類分 類分 類分 在放別類 在放別類 在放別類 在放別類 將 圖 將 圖 cc.openhome.util 將 圖 將 圖 Console 2.21 :字文的白反 Lab圖下入鍵頭開在, 的中夾料資 中 啟開器輯編用請 Console.java Hello1/src 2.2.2 。的目個這到達你助協以可,字鍵關 package 個有,中法語 在,理管類分的上稱 Java名別類是或,理管類分的上案檔體實是論無,式方的別類理管類別門分個有要你。題問蓋覆此彼生發會也碼始原許也,碼始原理管一統要在現果如而,題問的蓋覆案檔生發會就,時合整式程用應將要們他當, 為譯編並別類 個了寫門部 Util.class Util B,Util.class Util 為譯編並別類 個了寫門部 若麼那, 置放類別門分不若,作合 A .class同共隊團個多是式程用應的你果如,起一在合組再,塊能功些某的式程用應成完,工分同共隊團個多由能可有也,作合此彼別類個多有會中式程用應個一,說來例舉 。置放以加類別門分該應也別類,案檔的用作同不置放來夾料資同不分會你同如就,好很是不還但,了些一好較比上理管案檔就,下夾料資 在置放 的來出譯編,中夾料資 在放 ,別類的寫撰所你在現classes .class src .java 2.2.2 使用 package 管理類別 稿草冊手術技 Java SE 7
  • 16. 。題問突衝稱名生發 cc.openhome.util.Console 的你與會不就也, com.abc.Console 為稱名合吻全完其則, 為義定件套其 com.abc但, Console 了義定 class 用使也位單或織組個一另若,於在處好的作麼這 稱名合吻全完用使 圖 稱名合吻全完用使 圖 稱名合吻全完用使 圖 稱名合吻全完用使 圖 2.23:為改修須必在現 Main.java ,說是就也, cc.openhome.util.Console 用使須必就,別類 Console 用使要中別類 在,中件套的同不於位是別類 Main Console與 Main 於 由 。 稱 名 合 吻 全 完 用 使須 必 ,別 類 的 件套 同 不 而 , 可 即 稱 名 的義 定 所class 用使要只,別類的中件套同相是果如,時別類個某用使定指中碼始原在 。 cc.openhome.util.Console 為稱名合吻全完其,中類分 cc.openhome.util 於位是別類 而, Console cc.openhome.Main是稱名合吻全完其,中類分件套 cc.openhome 於位是別類 於由 Main 完全吻合名稱(Fully qualified name) 。題問的蓋覆此彼案檔碼始原生發易容不就,理管起一在置放要碼始原的位單或織組同不若後日,顯明很處好的作麼這 。夾料資 的中夾料資 cc/openhome src在放須必 以所,下件套 Main.java 在義定 cc.openhome 用使別類 package Main,夾料資出立建動手須必你,下助輔具工有沒在,夾料資 的中夾料 cc/openhome/util資 在放須必 src 以所,下件套 Console.java 在義定 cc.openhome.util package用 使別類 Console 於由,理管中夾料資 在放案檔碼始原有所將劃計前目 src 原始碼檔案與套件管理 。明說作別分點 到 對針下 3 1以,論討予不先章本,紹介章一下在將,理管限權的間件套到涉牽,點 第於關 4 public 為告宣須必) (法方或別類的用使接直以可間件套在要 Method 層階夾料資的同相層階稱名義定所 與在置放要案檔碼元位 package ) ) ) ) ( ( ( ( Fully qualified name稱名合吻全完的別類成而合結會,稱名義定所稱名合吻全完稱名合吻全完稱名合吻全完 與稱名義定所 class package 層階夾料資的同相層階稱名義定所 與在置放要案檔碼始原 package 稿草冊手術技 Java SE 7
  • 17. 本原,稱名 Console 到看若,時式程析剖續後,稱名的 得記先會,時告宣 importimport 到看 Main.java 析剖器譯編當。同相 圖與,式方令指的時行執與譯編 2.24 煩麻字打少減 煩麻字打少減 煩麻字打少減 煩麻字打少減 用使 圖 用使 圖 import 用使 圖 用使 圖 2.25 Lab :如例,下一懶偷 用以可你 import 。間時少多花得稱名合吻全完入鍵要是單,時長很稱名的義定件套些有,看想想,事的煩麻件是也卻,稱名合吻全完入鍵得都,時式程寫撰次每若但,題問的突衝稱名別類時式程寫撰與案檔體實了決解,理管件套用使 2.2.3 使用 import 偷懶 。稱名個這 cc.openhome.Main 定指是就也,稱名合吻全完定指須必,時式程行執 用使圖上以所,中件套 java 於位別類 cc.openhome 於由!意注 Main 層階夾料資的件套應對立建會,數引 定指 圖 層階夾料資的件套應對立建會,數引 定指 圖 層階夾料資的件套應對立建會,數引 定指 圖 層階夾料資的件套應對立建會,數引 定指 圖 -d 2.24 :如例。置位的有應至置放案檔碼元位的來出譯編將並,夾料資的層階件套應對出立建動自會就,置位放存的碼元位定指 用使有若時譯編在,夾料資的層階件套應對立建動手用不你 -d 。夾料資 cc/openhome的中夾料資 在放須必 classes以所,下件套 在 Main.class cc.openhome義定 package 用使別類 ,夾料資 Main 的中夾料資 在放須 cc/openhome/util classes必 的來出譯編以所,下件套 Console.class 在義定 cc.openhome.util package用使別類 Console 於由,理管中夾料資 在放案檔碼元位有所將劃計前目 class 位元碼檔案與套件管理 稿草冊手術技 Java SE 7
  • 18. Java SE 7 稿草冊手術技不到遇果如,它過訴告 用你得記器譯編但,西東麼什是 Console 道知不會 import用使著試器譯編,稱名的過 下一對比以可,稱名的識認 import ,中徑路別類的定指在以可果結,cc.openhome.util.Console cc/openhome/util Console.class 。譯編行進以可是於, 到找下夾料資 用使試嘗以可,稱名別類的識認不到遇,器譯編訴告是只 import 以所 import 。事些一作你為多器譯編讓,字些一打少你讓 import ,稱名的過 : 用使次多會許也你,別類個多到用使會下件套一同果如 importimport cc.openhome.Message;import cc.openhome.User;import cc.openhome.Address; :句語 的下以用,些一懶偷更以可你 importimport cc.openhome.*; 2.25 :同相果結行執與譯編而,句語 的下以用使以可也 圖 importimport cc.openhome.util.*;有得記先會,時告宣的 到看 Main.java 析剖器譯編當 import識認不它現發,時稱 名cc.openhome.util 到析剖續後在,稱名件套 Console,稱名的識認不到遇若,它過訴告Cosnole 用你得記器譯編但,西東麼什是 import 與 將著試器譯編,稱名的過 import 下一對比以可 cc.openhome.util Console,中徑路別類的定指在以可果結, 為合結 cc.openhome.util.Consolecc/openhome/util 。譯編行進以可是於, 到找下夾料資 Console.class : 個一了寫己自你果如,度限個有是也懶偷 Arrayspackage cc.openhome;public class Arrays {...} :碼式程的下以有寫撰中別類個某在若import cc.openhome.*;import java.util.*;public class Some { public static void main(String[] args) { Arrays arrays; ... }} :息訊誤錯下以有現發會你,時譯編麼那
  • 19. : 煩麻 )找自是只,係關沒也然當了寫(因原的式程寫撰下如用不何為是就也這,稱名的義定class 用使接直以可也 import 寫撰用不,用常很於由別類的下件套 java.lang在, java.lang.System 是實其稱名整完,理管件套用使有也實其,別類System 的用使時式程 個一第寫是像,別類用常多許有中 Java 在 Java SE API 。已而些一長拉間時的時譯編讓會只多頂 。能 import效行執響影會不,的樣一是都 的後過譯編, .class 無有中碼始 import原論無,像不都點一 跟 #include ,意注請者讀的 import 示提 示提 過學 示提 示提 C/C++ 法寫的守保最 。法寫的守保最 法寫的守保最 法寫的守保最歸回就懶偷能不,具工懶偷是歸回就懶偷能不,具工懶偷是歸回就懶偷能不,具工懶偷是歸回就懶偷能不,具工懶偷是 import,說地單簡。了譯編過通以可就式程個這 } } ... cc.openhome.Arrays arrays; public static void main(String[] args) { public class Some { import java.util.*; import cc.openhome.*; :來出打字逐地確明得就,稱名別類個哪用使要你,了懶偷能不就,時況情種這到遇 ? java.util.Arrays 是還 用使該底到,了cc.openhome.Arrays惑困器譯編是於, 到找中夾料資 Arrays.class 的應對, 圖考參,一之 ) java/util 2.20徑路入載別類的設預(中 的 在以可也現發, rt.jar Java SE API java.util.Arrays為起一在合結 與 Arrays 將著試器譯編,而然java.util 。 到找下夾料資 Arrays.class ,中徑路別類在以可果結 cc/openhome,cc.openhome.Arrays 為起一在合結 與 Arrays 將著試器譯編 cc.openhome,稱名的過 import 對比以可,稱名的識認不到遇若,他過訴告 用你得記器譯 import編但,西東麼什是 Arrays 識認不它現發,時行該 至析剖續繼在,稱名件套 Arrayscc.openhome 有得記先會,時告宣的 到看 析剖器譯編當import Some.java ? ? ? ? 個哪用是底到 圖 個哪用是底到 圖 Arrays 個哪用是底到 圖 個哪用是底到 圖 2.26 稿草冊手術技 Java SE 7
  • 20. 的中夾料資 中碟光用使接直以可,者用使 tools 於對 Windows http://netbeans.org/downloads/index.html :可即本版 載下要只,言而圍範書本就, Java SE 載下址網下以至以可你 NetBeans IDE 。礎基為作 以多也 用業商多許, 的己自於屬造打你讓 Eclipse IDE IDE可,用使以可) (掛外多許有它,於在因原的能功應對 plugin 示提。助幫有 Eclipse應對能功 與 解瞭者學初對這,息訊的示顯際實 是就息訊誤錯譯編的示 IDE JDK JDK顯上 而, 的裝安你用使接直 IDE JDK ,於在因原的 擇選,能功 NetBeans NetBeans的應對 示提時要必,紹介本基行進 Eclipse 擇選將,中書本在 NetBeans IDE 7 。住制限給 的定特被易容不就,作操令指關 IDE相與 解瞭你要只,是的要重最,同相常通念觀本基但,色特的同不有會 的 JDK IDE同不,等 、 、 、 JDeveloper 是像有 的知熟人為最 Intellij IDEA Eclipse NetBeans IDE,品產碼始原放開的秀優是少不有中其, 的少不數為有,中域領的 在 IDE Java 2.3.1IDE 專案管理基礎 專案管理基礎 http://caterpillar.onlyfun.net/Gossip/JUnit/ :明說的 或 關有中件文下以考 Maven Ant參以可,能產昇提具工等 Maven Ant 示提 示提 或 用使慮考以可也,外之 了除 示提 示提 IDE 。能產的你昇提,作工理管源資等案檔碼元位與案檔碼始原些一你勞代 由, ) IDE Development Environment ( 用使始開慮考以可你!煩麻很是在實 這,稱名合吻全完Integrated IDE ...用使須必時式程行執,數引等 、 定指確正須必時譯編,層階夾料資體 -sourcepath -cp實的應對件套與立建須必你,後之案檔碼元位與案檔碼始原理管件套用使始開在 2.3 使用 IDE http://caterpillar.onlyfun.net/Gossip/JavaEssence/SourceClassInJAR.html:件文下以考參以可你,案檔 作製來式程具工 的 用使以可 JAR jar JDK 示提 示提,下式模字文在,裝封案檔 用使以可都,案檔碼元位或案檔碼始原 示提 示提 JAR 。別類應對到找能否是看看,合組的 對比著試會也,時述陳 java.lang import何任寫有沒, 有就設預為視可import。對比行進述陳 從著 java.lang import試再,到找沒若,用使就到找果如,別類找尋中件套一同在先會,稱名別類的理管件套有沒個一到看器譯編當, import 要需不並用使此彼,件套一同於位別類果如 java.lang.System.out.println("Hello!World!"); 稿草冊手術技 Java SE 7
  • 21. Java SE 7 稿草冊手術技 netbeans-7.0-ml-javase-windows.exe 面畫下 以現出, 後權 授意 同並檔行執 可 下按, 的你擇選請,時 JDK7 :可即裝安行進示指照按步逐後之,錄目裝安 的裝安你用使接直 的裝安你用使接直 的裝安你用使接直 的裝安你用使接直 2.27 NetBeans IDE 圖 圖 圖 圖 JDK Eclipse 載下要只,言而圍範書本對,下如面頁載下的 示提 示提 示提 示提 Eclipse IDE for Java Developers :可即 http://www.eclipse.org/downloads/ Eclipse 當下一按,後縮壓解案檔的載下將, 有裝安要只,裝安需無 JRE 的己自有它,具工發開的 用使不 eclipse ,行運以可就 的中 Eclipse JDK Java :考參可訊資細詳, , ) Java Development Tools (具工發開 JDT http://www.eclipse.org/jdt/ 在,理管源資案專了始開步初於等就你,後之理管件套用使須必入步模規式程在 IDE :案專立建下如以可,中 在。始開案專立建從是也常通,式程寫撰要中 NetBeans 1. ,中塊方話對」 File/New Project... 「 的 現 出 在 ,」 「單選行執 New ProjectVideo Categories 按著接,」 「擇選」 Java 「而, 「擇選」 」 Projects 「 Java Application Next 。鈕按」 「下 2. 入輸」 Project Name: 「 」 「稱名案專入輸中」 , 「在 Hello2 Project Location: 。」C:workspace 「至存儲會」 Project Folder: 「意注,」 「 C:workspaceHello2 3. Create Main Class 類 個有會示表這, 」 「入輸中」 cc.openhome.Main 「在 Main
  • 22. :理管案檔體實際實視檢接直格窗」 「至換切以可則 Files ,容內夾料資案專看觀來」管總案檔「啟開行自 NetBeans須必 的有,理管案檔體實於等不但,視檢源資案專的便方供提格窗 IDE Projects System.out.println("Hello World"); :譯編式程行進 求要會這 NetBeans,」 「中單選行執後然,寫撰下如中 Run/Build Main Project 在以可你 Main.java 。案檔 些這括包會 JAR CLASSPATH的理管 示表,案檔 的現出中 IDE JAR 。案檔 些這有就, Libraries JAR CLASSPATH的中 圖顧回以可你,案檔 些一的中 2.19 了用使到看可中」 JAR 「JDK 1.7 Libraries而,案檔碼始原視檢位單為件套以你便方這, 了置放中其, Main.java cc.openhome視檢件套有中」 「到 看以 可 ,中格窗 Source Packages 的圖上在 Projects 格窗 格窗 格窗 格窗 的 的 的 的 Projects圖 圖 圖 圖 2.28 NetBeans IDE :格窗」 「的圖下如供提,話的 Projects NetBeans,源資案專些一視檢你便方,格窗視檢案專的設預供提會常通 ,後立建案專 IDE 。案專立建鈕按」 「下 Finish按著接,法方點入進式程 main() 立建動自會中當,件套 在放別 cc.openhome 稿草冊手術技 Java SE 7
  • 23. :息訊與誤錯譯編的生產而)名檔主( 於等不稱名的義定 Main ,中 public class 是圖下如例。息訊誤錯的供提具工譯編 示顯接直會,Main.java 是果 JDK NetBeans如,誤錯譯編的示顯會就,上線虛色紅至移標游鼠滑把,愣發別萬千線虛色紅到看果如,法語的誤錯譯編致導是那示表常通,線虛色紅現出若,碼式程輯編中 在 IDE 。果結行執示顯格窗」 「個有會,令指」 「 Output Run File行執鍵右按上別類於可,別類的 點入進式程有行執 用使要果如 main() NetBeans。具工) (能產是 竟畢,勞代 是都切一這,案檔 置放類別 Productivity IDE IDE .java門分稱名義定 依動自會中當,案檔碼始原是就夾料資」 「 案檔 的 package , src JAR案檔碼元位了裝封是就夾料資」 「 案檔 , 置放類別門分稱名義定 dist .class package依動自會中當,) 的到用會時行執是也以所(案檔碼元位的來出譯編是 CLASSPATH就」 「 夾料資」 「與」 「」 。 build/classes 、 src 「的中格窗 意注dist build/classes Files先可,說來前目就,容內體實的 夾料資案專前目是就圖上 C:workspaceHello2 格窗 的 格窗 的 格窗 的 格窗 的 Files圖 圖 圖 圖 2.29 NetBeans IDE 稿草冊手術技 Java SE 7
  • 24. :面畫本基些一的 示顯圖下,息訊的供提 是不息訊誤錯的 Eclipse JDK譯編以所, 的己自用使JDT 過不,的似類是作操多許有 示提 示提 示提 示提 Eclipse Eclipse 。了事沒就項選個一第下按是不,的要想你是才項選個哪斷判要是還你但,事好是示提有器譯編,項選個兩的別類立建有還外另, Scanner 個有也,中類分件套個一另在,到看以可也你, import 要是不是你看,的要想你是許也 個有現發 java.util.Scanner器譯編,為因是項選個一第,別類 Scanner 得認不器譯編為因是,例為圖上以 示提正改的時誤錯譯編 圖 示提正改的時誤錯譯編 圖 示提正改的時誤錯譯編 圖 示提正改的時誤錯譯編 圖 2.31 :項選的用合有否是看看,示提正改示顯示圖下按以可時這,示圖炮燈電小個一現出會,說來 以,式方正改些一示提會許也,明聰夠 果如,誤錯譯編些一於對NetBeans IDE 誤錯譯編示表常通線虛色紅,中 在 圖 誤錯譯編示表常通線虛色紅,中 在 圖 誤錯譯編示表常通線虛色紅,中 在 圖 誤錯譯編示表常通線虛色紅,中 在 圖 IDE 2.30 稿草冊手術技 Java SE 7
  • 25. :如例。式方個一的本版 行執所認確是這 JRE,本版 的行執示顯以可這,數引 JRE 個一帶附以可,時令指 行執在 -version java 。 個這 Public JRE 用使就是於,庫式程生原關相到找以可下夾料資一同為C:Program FilesJavajre7因,時令指 行執則, java 括包定設 將果如 C:Program FilesJavajre7bin PATH 。 的 是的到找 Private JRE JDK是於,庫式程先原無有中夾料資 的夾料資層一上找此因,庫式程生原關相到不找 jre中 的 在為因,時令指 行執,錄目 的 括包 bin JDK 定設果如 java bin JDK PATH 錄目 到找中錄目層一上在否可 jre 庫式程) (生原關相到找下夾料資檔行執可 在否可Native java : 的用可找尋來則規的下以照依會,時行執並檔行執可 到找當 JRE java ? 套哪是的動啟所檔行執可個這,檔行執可檔行執可 檔行執可 檔行執可 JRE 個一第 個一第 個一第的到找下序順 個一第java 行執會, 了定設果如,令指 入鍵下式模 PATH PATH java字文在? 套一哪了行執底到你麼那, 套多在存時同能可有中腦電然既 JRE JRE 。 的裝安擇選是個一, Public JRE 的身本 是個一,中 Private JRE JDK腦電在存 套兩有會少至, JRE 裝安併一擇選果如,後 好裝安在 Public JRE JDK ! 套一有是就作視 個一到找將以可你,上 JRE java.exe度程些某,案檔 個多有現發會能可, java.exe 尋搜中 在如例,案 java.exe Windows檔的 中腦電尋 搜著試 以 可! 套 一在存 只不能可中 腦 電的你,因 原種各為因 JRE 2.3.2 使用了哪個 JRE? ? 。定設或作操果如中 明說併一,時容 IDE內關相明說後之在會,能功的它其,定設或作操些哪中 至應對,念觀等理管件套 IDE、息訊誤錯關相譯編、用使具工 、 ,止為今至了釋解微稍上以 CLASSPATH JDK 稿草冊手術技 Java SE 7
  • 26. 。 的用使設預時案專增新與增新的本版 JRE JRE行進,」 「擇選,中塊方話對」 Java/Installed JREs「在 Preferences ,令指」 「中單選行執以可,話的 W indows/Preferences 示提 示提 是果如 示提 示提 Eclipse 。定設束結鈕按」 「的」 「下按Close Java Platform Manager 4. 。增新台平成完」 「下按,後值定設的要想你是 Finish 」 「與」 Platform Javadoc: 「」 、 「的設預認確 Platform Sources: Platform Name: 3. 。鈕按」 「下按,錄目 的要想你擇選,中塊方話對的現出在 Next> JDK 2. 。鈕按」 「下按,中塊 Add Platform Video 方話對」 「的現出在, 」 Java Platform Manager 「單選行執 Tools/Java Platforms 1. :台平 增新先下如以可, ( 的用使所換切想你果如 )Java JDK JRE ,中 在。 設預為 NetBeans JRE中) 圖考參( 的定設時裝安你 Private JRE 2.27 JDK 以會, 是果如?呢 個哪了用使你,案專增新 用使果如,麼那 NetBeans JRE IDE 。 定設是不而, 的要想你是夾料資 之 CLASSPATH JRE bin JRE 個一第的到找,中序順 定設須必下式模字文, 換切是求需個有果如 PATH JRE 。作動查檢的本基是都些這,訊資的 看查再,序順的中徑路 java -version 查檢先可, 認確要若下式模字文,事 PATH JRE 件一的要重很是本版認確先, 時去邊那戶客到如例(時境環發開新個一到剛在 ) 本版認確 本版認確 本版認確 本版認確 用使 圖 用使 圖 用使 圖 用使 圖 -version 2.32認確後來出 解註 解註 解註 解註 : JDK7 稿草冊手術技 Java SE 7
  • 27. :息訊誤錯的下以生發會能可有,行執上 JRE 本版舊在,案檔碼元位出譯編 JDK 本版新用使果如 2.3.3 類別檔案版本 類別檔案版本 。本版 的用要你擇選中」 JRE JRE: 「在,鈕按」 「下按, 中籤頁」Alternate 「擇選, 」 Edit... JRE Libraries Path 「擇選,中塊方話對」Java Build 「的現出在,令指」 「 Propertes Properties行執,鍵右按上案專於以可, 的別用改要案專有既若中 示提 示提 在 示提 示提JRE Ecl.ipse 。本版 的要想你為定設已, JDK」 「的中格窗」 「認確 Libraries Projects 3. 。定設成完」 「下按,後本版 的用使要你擇選,中項選」 OK JDK Platform: 「的邊右在,Java 」 「擇選,中塊方話對」 Libraries 「的現出在 Project Properties 2. Video 。令指」 「行執鍵右按,案專擇選中格窗」 Properties「在 Projects 1. : ( 的用使想案專變改,作操下如可來下接,後增新台平 成完 ) JRE JDK Java 稿草冊手術技 Java SE 7
  • 28. 案檔碼元位析剖 案檔碼元位析剖 案檔碼元位析剖 案檔碼元位析剖 javap 用使 用使 用使 用使 2.34 圖 圖 圖 圖 :號本版的案檔碼元位認確, 式程具工 用使以可 javap JDK 。案檔碼元位該理處會不就則否,圍範的受接可在否是號本版其認確會,後案檔碼元位入載在 。同不所有能可式格 JVM案檔碼元位,號本版的同不,號本版次與號本版主示標中案檔碼元位在會器譯編 。 為) (號本版次與號本版主 51.0 major.minor的碼元位個這出指並, UnsupportedClassVersionError 現出果結,碼元位行執 用使, 至Private JRE6 換切,碼元位出譯編下 JDK6 PATH 在是 圖 JDK7 2.33 碼元位本版此援支不 碼元位本版此援支不 碼元位本版此援支不 碼元位本版此援支不 2.33 圖 圖 圖 圖 稿草冊手術技 Java SE 7
  • 29. Java SE 7 稿草冊手術技 使以可 System.getProperty("java.class.version") 得取 JRE 的援支用使, 號本版碼元位 . System.getProperty("java.runtime.version") 得取JRE 。息訊本版 示提 在 示提 示提 示提 The JavaTM Virtual Machine Specification 中 The class File Format :式格本基碼元位了了說 http://java.sun.com/docs/books/jvms/second_edition/html/ClassFil e.doc.html 碼元位的援支,作實 的 1 ,出指中 釋註的部底件文 Sun JDK 1.0.2 JVM 。 容相前向( ) 45.0 到 援支 。 到 為號本版案檔 45.3 1.1.X 45.0 45.65535 Java 2 。 到 援支 與 45.0 。 到 援支台平 46.0 Java SE 5 6 49.0 50.0 Java SE 7 51.0 。 援支則所台平定指合符須必,碼元位的來出譯編定指 用使以可,候時的譯編在 -target:如例。本版的定指過超不法語的用使查檢器譯編求要-source 用使,號本版的許允 項選 項選 項選 項選 與 與 與 與 定指 圖 定指 圖 定指 圖 定指 圖 2.35 -source -target檢並,號本版的受接可台平 是須必案檔碼元位的來出譯編定指子例個這面上 1.6設預有會器譯編,下況情的 與 1.6 定指不在。法語 是須必法語用使查 -target -source -target值,時定指在值,時定指在值,時定指在值,時定指在 是都 , 是都 是都 是都 與 與 與 與 JDK7 的設預 的設預 的設預 的設預 如例,值 的 -target -source 1.7 -target過通法無會就, 為 -source 定指只若,中 圖在以所, 於等或於大須必 於等或於大須必 於等或於大須必 於等或於大須必 2.35 -target 1.6 -source 。 值設預是仍 為因,譯編 1.7 ( 為設預 JDK7 JDK6 以所,增新的上法語有,比相 與 示提 示提 示提 示提 -source 1.7 -target ) 為設預 ( 與) 為設預 1.7 ( 。 為設預 ) JDK6 -target 1.6 JDK5 -target 1.5 。 為設預都 以所,增新的上法語有沒則 -source 1.5
  • 30. :誤錯下以現出會則, 的裝安已到找上統系在法無上際實,本版的定指 JRE 用使果如 -version 。題問有沒就本版 定指時行執,號本版碼元位 為譯編定指時譯編 1.6 1.6次二第。 UnsupportedClassVersionError 了現出就本版 定指時行執,號本 1.6版案檔碼元位 的設預用使是就也,本版定指有沒時譯編次一第,中 圖 1.7 2.36 本版行執定指 本版行執定指 本版行執定指 本版行執定指 用使 圖 用使 圖 用使 圖 用使 圖 -version 2.36 :如例。本版定指並數引 用使時行執在以可, 或 版舊有裝安經已你果如,案檔別類的號本-version JRE JDK版低較具試測能才, 或 的本版低較至 換切得定一非並,上實事 JRE JDK PATH 。題問生發會不較比時行執 版舊在樣這, JRE rt.jar的版舊至考參, 定指時譯編是好最,行執法無上 版舊在成造會 -bootclasspath JRE就, 新的有沒 版舊些一到用引果如, 案檔 的 API ) JRE 是就也( JAR Java SE 7 API 的 至考參仍器入載別類的設預統系,說來單簡。麼什是器入載別類rt.jar 1.7 Bootstrap明說會 節章後之,) (器入載別類 的設預時譯編為因是 Class loader Bootstrap這,息訊示警現出會,譯編行進 與 定指只果如,到看可中 圖 -target -source 2.35 稿草冊手術技 Java SE 7
  • 31. 與 與 與 與 -target -source的 的 的 的 JDK 定設中 定設中 定設中 定設中 2.38 NetBeans 圖 圖 圖 圖 : 「擇選拉下 」 JDK7」 「的中」 「在,令指」 Source/Binary Format: 「行執鍵右按上案 Sources Properties專在以可, 為變改想果如。 與 JDK7 的 用使是都設預,台平為作 -target -source JDK6 用使算就,例為JDK7 以,同相不並項選 與 NetBeans 7.0 的設預,案專 -target -source的立建中 本版同不?呢項選的應對 IDE 與 定設何如中 在麼那 -target -source IDE 本版應對到找法無時定指 本版應對到找法無時定指 本版應對到找法無時定指 本版應對到找法無時定指 用使 圖 用使 圖 用使 圖 用使 圖 -version 2.37 稿草冊手術技 Java SE 7
  • 32. 定設,案檔 堆一含包中當,縮壓式格 用使際實案檔CLASSPATH .class ZIP JAR . 。定指 用使以可則,案檔別類找尋始開夾料資前目從也望希,候時的有。定指來數引 或 -cp 用使以可,置位的) (檔行執可知告要時 動啟在 -classpath .class JVM。訊資徑路的) (檔行執可其定指 .class 過透是式方,案檔找尋下徑路些 CLASSPATH哪到統系業作擬虛個這 訴告要就你, (檔行執可個某行執中 在 ) JVM .class JVM 。作動的作要定一是訊資 定確,要重常非 或 的本版個哪了行執定確,中腦電的 PATH JRE JDK JRE或 個多了裝安在,式程具工的下 個哪行執定決將,序順的定設中徑路 JDK JDK Path,時 上以個兩裝安中統系若。令指個這有否是下徑路各找尋序依,序順徑路的定 JDK設中數變境環 照依會統系業作,時訊資徑路定指有沒而令指個一入鍵你當 PATH public static void main(String[] args) :是得定一式形的法方 main() 定規中書格規。同相稱名別類開公與須必名檔主案檔且而,別類) public (開公個一有能只是但,別類個數義定可案檔 個一 .java 元字 是或元字白空型半是能只白空 Tab 寫小大母字個每意注 同相須必稱名別類與名檔主 是名檔副 .java :意注須必點幾有時式程 寫撰。名檔副的案檔到看以可你定確先請,前之式程寫撰式正在 Java 2.4 重點複習 :定設行進中」 CompilerJava 「在 ,」 Properties 「行執鍵 右按上 案專在以 可則, 示提 示提 是果如 示提 示提 Eclipse 稿草冊手術技 Java SE 7
  • 33. 。 於等或於大須必值,時定指在 -source , 是都 與 1.7 -target -source 的設預 。本版的定指過超不法語的用使查檢器譯編求要-target JDK7 用使,號 -source本版的 許允所台 平定 指合符須必 ,碼元 位的 來出 譯編定指 用使以可, 候時的 -target譯編在。本版 的行執示顯數引 JRE 個一帶附以可,時令指 行執在-version java 錄目 到找中錄目層一上在否可 jre 庫式程) (生原關相到找下夾料資檔行執可 在否可 Native java : 的用可找尋來則規的下以照依會,時行執並檔行執可 到找當 JRE java 。稱名合吻全完用使用不中碼始原在你讓,具工懶偷是只 import public 為告宣須必) (法方或別類的用使接直以可間件套在要 Method 層階夾料資的同相層階稱名義定所 與在置放要案檔碼元位 package ) ( Fully qualified name稱名合吻全完的別類成而合結會,稱名義定所 與稱名義定所 class package 層階夾料資的同相層階稱名義定所 與在置放要案檔碼始原 package :義意的上理管種四有具會就,時類分行進 用使始開碼始原別類當 package 。程過的時譯編行進器譯編到看可數引 定指,夾料資放存碼元位的成完 -verbose譯編了定指 用使,夾料資的案檔碼始原找尋定指 -d 用使, -sourcepath CLASSPATH定指 用使須必也,時庫式程別類它其到用使要果如,時器譯編 -cp 用使在 javac 。案檔 有所中夾料資用使示表 用使以可,始開 .jar * 6 從,案檔 多許有中夾料資個某果如。夾料資的別特作當案檔 將可時Java SE .jar JAR 稿草冊手術技 Java SE 7