天天看點

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

1.2 “hello world!”執行個體程式

本節詳細介紹編譯和運作“hello world!”執行個體程式的指令。1.2.1節介紹利用內建開發環境netbeans ide開發該程式的過程。netbeans ide在java平台上運作,也就是說可在任何配置了jdk的作業系統上運作netbeans ide,包括microsoft windows、solaris、linux和os x。建議盡可能使用netbeans ide取代指令行。1.2.2節和1.2.3節依次介紹不使用內建開發環境時在microsoft windows、solaris、linux等平台上開發該執行個體程式

的詳細過程。(關于支援的作業系統版本資訊,參見oracle jdk 8和jre 8認證的系統配置。)運作時遇到問題,可參考1.4節,這部分給出了新手可能會遇到的大多數問題的解決方案。

1.2.1 用netbeans ide開發“hello world!”

現在寫第一個程式!這些指令适用于netbeans ide使用者。

1.?軟體清單

編寫該執行個體程式需要準備下述兩個軟體:

1)java se開發工具包。參考java se下載下傳頁。

2)netbeans ide。netbeans ide下載下傳頁給出所有平台的netbeans ide清單。

2.?建立第一個應用程式

第一個應用程式helloworldapp顯示問候語“hello world!”。按如下過程建立該程式:

1)建立ide項目。建立ide項目時會建立一個環境,用于建構(build)和運作應用程式。使用ide項目不會遇到像指令行開發那樣的配置問題。在ide中,隻需選擇一個菜單項,就可以建立和運作應用程式。

2)在生成的源檔案中添加代碼。源檔案包含java語言寫的代碼。建立ide項目時,會自動生成一個源檔案架構(skeleton),隻需修改該檔案添加“hello world!”消息即可。

3)将源檔案編譯成.class檔案。ide會調用java編譯器(javac)将源檔案翻譯成java虛拟機能了解的指令。這些指令通常稱為位元組碼。

4)運作程式。ide調用java應用程式啟動器(java)在java虛拟機中運作應用程式。

3.?建立ide項目

按下述步驟建立ide項目。

1)啟動netbeans ide。

在microsoft windows系統中,單擊start菜單中的netbeans ide選項。

在solaris和linux系統中,進入ide的bin目錄,輸入./netbeans執行ide啟動腳本。

在os x系統中,單擊netbeans ide圖示。

2)在netbeans ide中選擇file | new project(如圖1-4所示)。

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

圖1-4 netbeans ide的new project菜單項

3)在new project向導中,擴充categories中的java,選擇projects中的java application,然後單擊next(如圖1-5所示)。

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

圖1-5 netbeans ide的new project向導中的choose project頁

4)在name and location向導頁中,做如下操作(如圖1-6所示):

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

圖1-6 netbeans ide的new project向導中的name and location頁

在project name字段輸入hello world app。

在create main class字段輸入helloworldapp.helloworldapp。

5)單擊finish。

項目建立完畢,ide會打開該項目,如圖1-7所示。建立的項目包含以下元件:

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

圖1-7 打開helloworldapp項目的netbeans ide

projects視窗,包含項目元件(如源檔案和所需的庫等)的樹形圖。

source editor視窗,其中已打開了檔案helloworldapp.java。

navigator視窗,快速查閱所選類中的元素。

4.?在平台清單中添加jdk 8(如有必要)

可能需要在ide的可用平台清單中添加jdk 8。這可通過選擇tools菜單中的java platforms實作,如圖1-8所示。

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

圖1-8 選擇tools菜單中的java platforms

如果已安裝的平台清單中沒有jdk 8(可能顯示為1.8或1.8.0),單擊add platform,轉到jdk 8的安裝目錄,并單擊finish。會看到新平台添加完畢,如圖1-9所示。

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

圖1-9 java平台管理器

如果要将jdk 8設為所有項目的預設平台,隻需在指令行使用--jdkhome參數運作ide,或将jdk的安裝路徑設為檔案“安裝目錄/etc/netbeans.conf”中的netbeans_j2sdkhome屬性的值。

如果隻需将jdk 8設為目前項目的預設平台,在projects面闆中選擇hello world app,單擊file菜單中的project properties(hello world app),單擊libraries,然後選擇java platform下拉菜單中的jdk 1.8,結果與圖1-10類似。至此ide已成功配置jdk 8。

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

圖1-10 hello world app項目屬性中的libraries

5.?在源檔案中添加代碼

建立項目時,已經選中new project向導中create main class前面的選擇框。是以,ide會建立一個架構類。将其中代碼

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

替換成

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

就可以将“hello world!”消息添加到架構代碼中。

另外,可以将代碼

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式
《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

這四行是代碼注釋,不會影響程式運作。本章後續小節會介紹代碼注釋的使用和格式。

注意 如上所述輸入所有的代碼、指令和檔案名。編譯器(javac)和啟動器(java)都是區分大小寫的,是以輸入的英文字母大小寫必須一緻。比如,helloworldapp與helloworldapp是不同的。

選擇file菜單,單擊save菜單項儲存檔案,檔案内容如下:

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

6.?将源檔案編譯成.class檔案

在ide主菜單中,選擇run | build project (hello world app)菜單項編譯源檔案。output視窗及其結果如圖1-11所示。

如果建構輸出中包含語句build successful,那麼恭喜你,編譯成功!

如果建構輸出中包含語句build failed,那麼代碼可能存在文法錯誤。output視窗報告的錯誤都是超連結檔案,輕按兩下超連結就可定位代碼中的錯誤位置。修正錯誤後再次選擇run | build project重新建構即可。

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

圖1-11 output視窗——helloworldapp項目的建構結果

建構項目時會生成位元組碼檔案helloworldapp.class。打開files視窗,展開節點hello world app/build/classes/helloworldapp,顯示生成的新檔案,如圖1-12所示。至此,項目建構完畢,接下來就可以運作程式了。

7.?運作程式

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

在ide菜單欄中,選擇run | run main project菜單項。如果運作成功,會顯示如

圖1-13所示結果。

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

8.?netbeans ide的使用技巧

本章剩餘部分會解釋該應用程式中的代碼。後續小節會深入介紹核心的語言特性,并提供更多例子。盡管本書後面不會介紹使用netbeans ide的指令,但使用ide編寫和運作執行個體代碼比較容易。這裡介紹ide的一些使用技巧:

在ide中建立項目後,就可使用new file向導往項目中添加檔案。選擇file | new file并在向導中選擇一個模闆,如empty java file模闆。

ide的compile file(f9)和run file(shift+f6)可以分别編譯和運作單個檔案(相對于整個項目而言)。使用run main project指令時,ide隻會運作ide關聯為主項目的主類的檔案。是以,即使在helloworldapp項目中建立其他的類并使用run main project指令運作該檔案,ide也隻會運作helloworldapp檔案。

也可以為應用程式建立包含多個源檔案的獨立ide項目。

在ide中輸入代碼時,可能會彈出代碼完成框。此時,可以忽略代碼完成框并繼續輸入代碼,也可以選擇完成框中的表達式。如果不喜歡自動彈出代碼完成框,可以關閉該功能。選擇tools | options | editor,單擊code completion标簽,清除auto popup completion window選擇框。

選擇ide菜單欄中的refactor菜單可以重命名projects視窗中的源檔案節點。彈出的rename對話框會引導重命名類和更新代碼,單擊refactor儲存這些更改。如果項目隻有一個類,這些操作就看似沒有必要;但在大項目中,當更改會影響代碼的其他部分時,這些操作會很有用。

關于netbeans ide的詳細特性,可參考《netbeans文檔頁》。

1.2.2 在microsoft windows中開發“hello world!”

本節介紹在windows系統中基于指令行開發“hello world!”執行個體程式的詳細過程。(關于支援的作業系統版本的資訊,參見oracle jdk 8和jre 8認證的系統配置。)

編寫該程式需要準備下列兩個軟體:

1)jdk 8。下載下傳windows版本的jdk 8。(注意是下載下傳jdk,而不是下載下傳java運作時環境jre)。詳情參考安裝指南。

2)文本編輯器。在這個例子中使用windows自帶的notepad編輯器。如果使用其他文本編輯器,隻需修改相關指令即可。

按如下過程建立應用程式helloworldapp:

1)建立源檔案。源檔案包括用java寫的代碼。源檔案可以用任意文本編輯器建立和編寫。

2)将源檔案編譯成.class檔案。java編譯器(javac)将源檔案翻譯成java虛拟機能了解的指令。如前所述,.class檔案中的指令通常稱為位元組碼。

3)運作程式。java應用程式啟動器(java)使用java虛拟機運作應用程式。

3.?建立源檔案

建立源檔案有兩種方法:①儲存檔案helloworldapp.java;②采用下述方法。

首先打開文本編輯器。在start菜單選擇programs | accessories | notepad啟動notepad編輯器。在新文檔中輸入以下代碼:

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式
《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

注意 如上所述輸入所有的代碼、指令和檔案名。編譯器(javac)和啟動器(java)都是區分大小寫的,是以輸入的字母大小寫必須一緻。

将上述代碼存入檔案helloworldapp.java。在notepad中,選擇file | save as菜單項,然後在彈出的save as對話框中執行如下操作:

1)使用save in組合框指定儲存檔案的檔案夾(或目錄)。在這個例子中,目錄是c:myapplication。

2)在file name文本字段中輸入"helloworldapp.java",包括雙引号。

3)在save as type組合框中,選擇text documents(*.txt)。

4)在encoding組合框中,編碼類型選為ansi。

完成後,對話框如圖1-14所示。單擊save,退出notepad。

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

圖1-14 save as對話框

4.?将源檔案編譯成.class檔案

在start菜單中選擇run,然後輸入cmd,啟動shell視窗或指令行視窗,如圖1-15

所示。

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

圖1-15 shell視窗

指令提示符會顯示目前目錄。打開指令行視窗時,目前目錄通常是主目錄,如圖1-15所示。

要編譯源檔案,需将目前目錄定位到檔案所在的目錄。比如,如果源檔案目錄是c:myapplication,在提示符下輸入下述指令并按Enter鍵:

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

目前目錄就變成c:myapplication>。

注意 要切換到不同驅動器上的目錄,需要輸入其他指令,也就是說要輸入驅動器的名稱。比如,要切換到d:myapplication,就必須輸入d:,如下所示:

在提示符下輸入dir并按Enter鍵,可以顯示源檔案,如下所示:

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

現在可以編譯檔案了。在提示符下輸入下述指令并按Enter鍵:

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

編譯器會生成位元組碼檔案helloworldapp.class。在提示符下輸入dir并按Enter鍵就會顯示生成的新檔案,如下所示:

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

生成.class檔案後,就可以運作程式了。

5.?運作程式

在同一個目錄下,在提示符下輸入下述指令并按Enter鍵:

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

螢幕上會顯示:

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

恭喜,程式運作成功。上述過程中如果遇到問題,可參考1.4節。

1.2.3 在solaris和linux中開發“hello world!”

本節詳細介紹在solaris和linux系統中用指令行開發“hello world!”執行個體程式的完整過程。

編寫第一個程式需要準備下述兩個工具:

1)jdk 8。下載下傳solaris或linux版本的jdk 8。(注意是下載下傳jdk,而不是下載下傳java運作時環境jre)。詳情參考《安裝指南》。

2)文本編輯器。在這個例子中,采用pico編輯器(大多數基于unix的平台都能用它)。如果使用不同的文本編輯器(如vi或emacs),這些指令很容易改寫過來。

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

1)建立源檔案。源檔案包括用java語言寫的代碼。源檔案可以用任意文本編輯器建立和編輯。

建立源檔案有兩種方法:①無需輸入代碼,儲存檔案helloworldapp.java;②采用下述過程建立。

先打開shell視窗或terminal視窗,如圖1-16所示。剛打開時,目前目錄通常是主目錄。任何時候,隻要在提示符下輸入cd,然後按enter鍵,就可以将目前目錄切換成主目錄。

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

圖1-16 terminal視窗

建立的源檔案儲存在獨立的目錄中。指令mkdir可用于建立目錄。比如,使用下述指令可以在/tmp目錄中建立examples/java目錄:

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

使用下述代碼可将目前目錄切換到該新目錄:

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

現在建立源檔案。

在提示符下輸入pico并按enter鍵,就可以啟動pico編輯器。如果系統傳回消息“pico:command not found”,就說明pico很有可能無法用。此時需要咨詢系統管理者或者使用其他編輯器。

啟動pico時,會出現新的空緩沖區(buffer)。這就是輸入代碼的區域。将下述代碼輸入該緩沖區:

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

注意 對如上輸入的所有代碼、指令和檔案名,編譯器(javac)和啟動器(java)都是區分大小寫的,是以輸入的字母大小寫必須一緻。

将上述代碼存入檔案helloworldapp.java。在pico編輯器中,按下ctrl+o,編輯器的底部就會顯示提示符file name to write:,輸入helloworldapp.java檔案的儲存目錄及檔案名。例如,如果要将helloworldapp.java儲存在目錄/tmp/examples/java中,隻需輸入/tmp/examples/java/helloworldapp.java并按enter鍵即可。最後按ctrl+x退出pico。

打開另一個shell視窗。編譯源檔案時,要将目前目錄定位為源檔案所在的目錄。比如,如果源檔案所在目錄是/tmp/examples/java,隻需在提示符下輸入下述指令并按enter鍵即可:

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

在提示符下輸入pwd,就可顯示目前目錄。在這個例子中,目前目錄已經變成/tmp/examples/java。輸入ls即可顯示建立的檔案,如圖1-17所示

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

現在來編譯源檔案。在提示符下輸入下述指令并按enter鍵:

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

編譯器會生成位元組碼檔案helloworld-

app.class。在提示符下輸入ls就可顯示建立的新檔案,

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

如圖1-18所示。生成.class檔案後,就可以運作程式了。

在相同目錄下,在提示符下輸入下述指令:

《Java語言導學(原書第6版)》一一1.2 “Hello World!”執行個體程式

如果結果如圖1-19所示,就說明程式可以運作了。在上述過程中如果遇到問題,可參考1.4節。