Skip to content

Commit 50a0ec9

Browse files
author
Justin Lin
committed
added 2.3 ~ 2.5
1 parent eb85571 commit 50a0ec9

File tree

6 files changed

+123
-1
lines changed

6 files changed

+123
-1
lines changed

docs/CH02.md

Lines changed: 123 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,4 +187,126 @@ Java 執行環境本身就是一個平台,執行於這個平台上的程式是
187187
2.3 第一個 Java 程式
188188
--------------------
189189

190-
待續 ...
190+
完成 JDK 相關環境設定之後,無論如何就先寫個簡單的 Java 程式,以測試一下環境設定是否正確,順便增強一些學習的信心,以下要介紹的第一個 Java 程式是會顯示 "嗨!我的第一個 Java 程式!" 這段訊息的簡單程式。
191+
192+
## 2.3.1 撰寫、編譯 Java 程式 ##
193+
194+
在正式撰寫程式之前,請先確定您可以看的到檔案的副檔名,在 Windows 2000/XP 下預設是不顯示檔案的副檔名,這會造成您重新命名檔案時的困擾,如果您目前在「檔案總管」下無法看到檔案的副檔名,請先執行工具列上的「工具/資料夾選項」並切換至「檢視」頁面,取消「隱藏已知檔案類型的副檔名」之選取。
195+
196+
![取消「隱藏已知檔案類型的副檔名」以顯示副檔名](../images/img02-12.png)
197+
198+
圖 2.12 取消「隱藏已知檔案類型的副檔名」以顯示副檔名
199+
200+
接著選擇一個目錄來撰寫 Java 原始碼檔案,假設是檔案會儲存在 C:\workspace 目錄,您要新增一個「文字文件」(也就是 .txt 文件),並重新命名文件為「HelloJava.java」,由於您是將文字文件的副檔名從 .txt 改為 .java,所以系統會詢問您是否更改副檔名,請確定更改,接著在「HelloJava.java」上按兩下開啟檔案,並照著圖 2.13 撰寫程式。
201+
202+
![第一個 Java 程式](../images/img02-13.png)
203+
204+
圖 2.13 第一個 Java 程式
205+
206+
這個程式有幾點必須注意:
207+
208+
- Java 的原始檔案必須以副檔名 .java 作結束
209+
210+
這也就是您必須讓「檔案總管」顯示副檔名的原因。
211+
212+
- 主檔名與類別名稱必須一致
213+
214+
Java 程式的類別名稱是指 "class" 關鍵字(Keyword)後的名稱,就這個例子而言,也就是 HelloJava 這個名稱,這個名稱必須與 HelloJava.java 的主檔名(HelloJava)一致。
215+
216+
- 注意每個字母的大小寫
217+
218+
Java 程式中會區分字母的大小寫,System 與 system 對 Java 程式來說是不一樣的名稱。
219+
220+
- 空白只能是半型空白字元或是Tab字元
221+
222+
有些初學者可能不小心輸入了全型空白字元,這很不容易檢查出來。
223+
224+
撰寫好程式並存檔後,接著開啟一個文字模式,並使用以下的指令切換至 HelloJava.java 所在的目錄(在此例中是 C:\workspace):
225+
226+
> cd C:\workspace
227+
228+
接著使用 javac 工具程式來編譯 .java 檔案,這邊指定編譯 HelloJava.java,指令如下:
229+
230+
C:\workspace\javac HelloJava.java
231+
232+
如果編譯順利成功,則在 HelloJava.java 所在的目錄,會出現一個 HelloJava.class 的檔案,這是已經編譯完成的 Java 位元碼(bytecodes)檔案程式。
233+
234+
您可能會遇到以下的幾個錯誤,這表示您有一些地方操作有誤:
235+
236+
- error: cannot read: HelloJava.java
237+
238+
這表示 javac 工具程式找不到您指定的 .java 檔案,請檢查檔案是否存在目前的目錄中,或是檔案名稱是否有誤。
239+
240+
- HelloJava.java:1: class HelloJava is public, should be declared in a file named HellJava.java
241+
242+
類別名稱與主檔名不符,請確定主檔名與類別名稱是相同的。
243+
244+
- HelloJava.java:3: cannot find symbol
245+
246+
程式碼中某些部份打錯了,最常發生的原因可能是沒有注意到字母大小寫。
247+
248+
- 'javac' 不是內部或外部命令、可執行的程式或批次檔。
249+
250+
Path 設定有誤或沒有在 Path 中加入 JDK 的「bin」目錄,請參考前一節的內容。
251+
252+
## 2.3.2 執行 Java 程式 ##
253+
254+
在順利編譯出 .class 的檔案之後,可以使用 java 工具程式來執行它,執行時必須指定類別名稱,就以上的例子來說,也就是指定 HelloJava.class 這個檔案的主檔名,指令執行方式如下:
255+
256+
C:\workspace>java HelloJava
257+
258+
java 工具程式會根據您指定的類別名稱,實際載入 .class 的檔案,以上例來說,就是載入 HelloJava.class 並執行,執行的結果應該是圖 2.14 的畫面。
259+
260+
![執行第一個 Java 程式的成功畫面](../images/img02-14.png)
261+
262+
圖 2.14 執行第一個 Java 程式的成功畫面
263+
264+
您可能會遇到以下的幾個錯誤,這表示您有一些地方操作有誤:
265+
266+
- Exception inthread"main" java.lang.NoClassDefFoundError
267+
268+
java 工具程式找不到您所指定的類別,請確定指定的類別存在目前的目錄中,名稱是否指定正確(如果是舊版的 JDK,可能必須在 Classpath 中加入 ".",表示可於目前目錄中找到所指定的類別)。
269+
270+
- Exceptionin thread "main" java.lan.NosuchMethodError: main
271+
272+
沒有指定 Java 程式的進入點(Entry point),java 工具程式指定的類別必須要有一個程式進入點,也就是必須包括 main(String[] args)這個方法(method),請確定您的程式中包括它,必須與圖 2.13 的 HelloJava.java 內容一致。
273+
274+
在之後的章節,如果不是要特別強調的話,不再重複指出如何編譯與執行 Java 程式,在往後的章節中說要編譯 Java 程式時,就是指使用 javac 工具程式來編譯 .java,而說要執行 Java 程式時,就是指使用 java 工具程式來執行指定的 Java 類別。
275+
276+
2.4 選擇開發工具
277+
----------------
278+
279+
從學習的角度來說,建議初學者使用純文字檔案來撰寫 Java 程式,並在文字模式下親自使用工具程式來編譯、執行 Java 程式,藉此來瞭解關於 Path、Classpath,熟悉工具程式的使用,習慣一些撰寫 Java 程式所必須注意的地方,嘗試從文字模式所提供的訊息中瞭解所撰寫的程式發生什麼問題,以及如何改正這些問題。
280+
281+
當然只使用純文字檔案總是有相當多的不便,在學習 Java 一段時間之後,您也許會想要找尋一個好用的 Java 開發工具,這邊的建議是先從簡單的文字編輯輔助工具開始,像是 [UltraEdit](http://www.ultraedit.com/)[Editplus](http://www.editplus.com/),這兩個文字編輯輔助工具都有語法標示顯示,以及一些好的尋找、取代、比較等功能,在Linux下的話,我經常使用 vi 來編輯 Java 程式。
282+
283+
從開發效率的角度來看,選擇一個好的整合開發環境(Integrated Development Environment, IDE)是必要,使用何種開發整合開發環境,依開發團隊的需求而各有不同,如果沒有什麼特別的需求,建議可以從簡單的 [JCreater](http://www.jcreator.com/)[BlueJ](http://www.bluej.org/index.html) 開始,這些開發環境不僅提供語法顯示等方便程式編輯的功能,也整合了一些 Java 工具程式的使用,使用上並不會太複雜,作為在文字編輯程式之後的進階開發環境程式,是個不錯的嘗試。
284+
285+
如果想要使用功能更齊全的 IDE,[JBuilder](http://www.borland.com/)[Eclipse](http://www.eclipse.org)[NetBeans](http://www.netbeans.org/) 等都是功能齊全的 IDE,也都各有其支持者,但如果您想找一個可以免費使用而功能齊全的 IDE 的話,建議可以使用 Eclipse 或 NetBeans。
286+
287+
Eclipse 是個可以免費下載、使用的IDE,但並不因為它免費而缺少必要的功能, Eclipse 提供了 JDT(Java Development Tools),這是基於 Eclipse 且功能齊全的 Java IDE(Eclipse 並不只被用來開發 Java 程式),它所提供的 PDE(Plug-In Development Environment)可以讓您對 JDT 進行功能擴展,在網路上總是可以找到 Plug-In 程式來加入 Eclipse 中以增加您所要想的功能,必要時,您也可以開發自己的 Plug-In 來為 Eclipse 擴展功能,Eclipse 也是大多數的 Java 開發人員所推薦的 IDE。
288+
289+
![Eclipse 是個功能強大且 free 的 IDE](../images/img02-15.png)
290+
291+
圖 2.15 Eclipse 是個功能強大且 free 的 IDE
292+
293+
NetBeans IDE 是 Sun 官方所推薦下載的 IDE,在 Java 官方網站上也可以下載綁定 NetBeans IDE 的 JDK 安裝檔案,NetBeans 本身是個高度模組化的 IDE,可以讓您下載新功能模組來擴充 IDE 的功能。在 NetBeans 在 5.0 版本之後,功能已相當成熟,每一次新的 JDK 版本釋出之後,NetBeans IDE 總是最先支援新版 JDK 的IDE,有相當多的 Java 開發人員也推薦使用 NetBeans IDE。
294+
295+
![NetBeans 是 Sun 官方所推薦的 IDE](../images/img02-16.png)
296+
297+
圖 2.16 NetBeans 是 Sun 官方所推薦的 IDE
298+
299+
> **良葛格的話匣子** 在我學習Java的過程中,差不多有兩年的時間,都是使用純文字檔案撰寫Java程式,這使得我對Java能有深入的瞭解,因而我建議初學者(完全沒有程式經驗的使用者)在學習Java的過程中,也從純文字檔案撰寫Java中開始學習,在您真正需要開發程式(或團隊需求),或想學習一個IDE的使用時,才開始使用IDE開發Java程式,不要只是偷懶或貪圖方便而使用IDE。
300+
301+
2.5 接下來的主題
302+
----------------
303+
304+
每一個章節的內容由淺至深,初學者該掌握的深度要到哪呢?在這個章節中,對於初學者我建議至少掌握以下幾點內容:
305+
306+
- 能自行下載、安裝 JDK
307+
- 瞭解 JDK、JRE 的安裝位置
308+
- 懂得設定 Path 之目的
309+
- 懂得設定 Classpath 之目的
310+
- 能成功的自行撰寫並執行第一個 Java 程式
311+
312+
之後的章節將以這一個章節的內容作為基礎進行說明,首先將從 Java 的資料型態、變數常數、流程控制開始介紹,這也是學習任何一個程式語言都不可缺少的過程。

images/img02-12.png

107 KB
Loading

images/img02-13.png

102 KB
Loading

images/img02-14.png

26.8 KB
Loading

images/img02-15.png

108 KB
Loading

images/img02-16.png

80.9 KB
Loading

0 commit comments

Comments
 (0)