第1章讓自己的第一個(gè)Java程序跑起來(lái)_第1頁(yè)
第1章讓自己的第一個(gè)Java程序跑起來(lái)_第2頁(yè)
第1章讓自己的第一個(gè)Java程序跑起來(lái)_第3頁(yè)
第1章讓自己的第一個(gè)Java程序跑起來(lái)_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余15頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第1章 讓自己的第一個(gè)Java程序跑起來(lái)第1章 讓自己的第一個(gè)Java程序跑起來(lái)本章我們走進(jìn)Java的世界。首先我們會(huì)對(duì)Java在編程語(yǔ)言中的地位有一個(gè)初步了解。然后將介紹如何在電腦上安裝并配置Java環(huán)境。最后將運(yùn)行一個(gè)小程序來(lái)作為自己步入Java世界的序幕。本章的目的有兩個(gè):一個(gè)是讓我們對(duì)Java有一個(gè)初步的認(rèn)識(shí);另一個(gè)是讓自己的電腦可以編寫(xiě)和運(yùn)行Java程序。所以對(duì)于本章中的程序,我們先不用著急去理解。Java之路才剛剛開(kāi)始,我們不急。1.1 想要用Java改變這個(gè)世界嗎?也許在翻開(kāi)此書(shū)之前,大家可能僅僅知道Java是一門(mén)由Sun公司開(kāi)發(fā)的編程語(yǔ)言。也許還知道還有很多編程語(yǔ)言,為不能決定

2、學(xué)習(xí)哪門(mén)語(yǔ)言而苦惱。相信大家既然拿起這本書(shū),并翻開(kāi)了第1章,那么就是想學(xué)習(xí)Java的,也許缺少的只是一個(gè)好好學(xué)習(xí)Java的理由。本節(jié)給出的就是好好學(xué)習(xí)Java的理由,讓大家以堅(jiān)定的信心走進(jìn)Java的世界。1.1.1 Java有什么優(yōu)勢(shì)?首先在這里,我們不去介紹Java語(yǔ)言區(qū)別于其他語(yǔ)言的優(yōu)勢(shì),如什么純面向?qū)ο?、跨平臺(tái)、繼承、封裝、多態(tài)、自動(dòng)垃圾收集,等等。沒(méi)錯(cuò),這些都是Java語(yǔ)言的特點(diǎn),但是這些詞匯對(duì)于初學(xué)者來(lái)說(shuō)僅僅是一堆抽象名詞而已。實(shí)際上,這些語(yǔ)言的特性對(duì)于初學(xué)者來(lái)說(shuō)是完全沒(méi)有必要去理解的,甚至可以說(shuō)完全沒(méi)有可能理解。在圖1-1中,給出了一個(gè)學(xué)習(xí)語(yǔ)言的大致流程。領(lǐng)會(huì)Java語(yǔ)言的那些特點(diǎn)

3、,其實(shí)是學(xué)習(xí)語(yǔ)言這個(gè)鏈條中的最后一環(huán)。當(dāng)然也是最難的一環(huán)。只有在實(shí)際的編程過(guò)程中,才能夠絲絲入扣地體會(huì)到Java語(yǔ)言的特點(diǎn)。體會(huì)到Java語(yǔ)言的設(shè)計(jì)者是如何讓Java在付出了最小代價(jià)的前提下,具備了簡(jiǎn)潔、優(yōu)雅的特點(diǎn),同時(shí)又具有強(qiáng)大的功能。圖1-1 學(xué)習(xí)語(yǔ)言的流程多謝Java,它讓程序的復(fù)雜程度可以得到有效的控制。當(dāng)然,這并不是說(shuō)Java語(yǔ)言簡(jiǎn)單。只要使用Java,就可以讓程序變得比使用其他語(yǔ)言更簡(jiǎn)單。想要做到這點(diǎn),必須看使用者的“功力”。想要體會(huì)到上面所說(shuō)的一切,好好閱讀本書(shū)的內(nèi)容將是一個(gè)好的開(kāi)始。1.1.2 Java在哪兒?所謂尺有所短,寸有所長(zhǎng)。任何一門(mén)編程語(yǔ)言都有適合它自己使用的領(lǐng)域。為

4、什么學(xué)習(xí)Java呢?因?yàn)槭聦?shí)告訴我們,Java是現(xiàn)今世界上使用最多的一門(mén)語(yǔ)言。q 在全球最大的開(kāi)源項(xiàng)目站點(diǎn)sourcefroge上,使用Java語(yǔ)言的開(kāi)源項(xiàng)目數(shù)量早在數(shù)年前就超過(guò)了歷史悠久的C+語(yǔ)言。Java編程語(yǔ)言的特性使得它的應(yīng)用面相當(dāng)廣泛,這反映了Java語(yǔ)言強(qiáng)大的生命力。q 很多國(guó)際軟件廠商巨頭都在大規(guī)模地使用Java語(yǔ)言開(kāi)發(fā)自己的核心產(chǎn)品。這也就意味著如果學(xué)好了Java語(yǔ)言,可以讓自己有更多的用武之地。那么,Java在哪兒呢?請(qǐng)看圖1-2。圖1-2 無(wú)處不在的Java圖1-2中只是描繪了Java的一部分應(yīng)用。此時(shí),世界上有無(wú)數(shù)的服務(wù)器正在運(yùn)行著Java程序,使得我們可以瀏覽站點(diǎn),使用

5、在線銀行,使用信用卡在商店的POS機(jī)上刷卡購(gòu)物,使用郵箱收發(fā)郵件。同時(shí),也有很多優(yōu)秀的單機(jī)程序是使用Java開(kāi)發(fā)的,例如Sun公司開(kāi)發(fā)的OpenOffice以及下一章將要介紹的Eclipse,還有更多更多,例如手機(jī)等移動(dòng)設(shè)備就是Java游戲施展拳腳的地方??梢哉f(shuō)Java的棲息地真的是可大可小,這讓Java無(wú)處不在。Java更多的是在我們看不到的地方,處理著各種各樣的數(shù)據(jù),支持著程序世界的運(yùn)轉(zhuǎn)。Java程序已經(jīng)滲透到這個(gè)世界的方方面面,可以說(shuō),如果現(xiàn)在世界上沒(méi)有了Java程序,我們會(huì)發(fā)現(xiàn)這個(gè)世界仿佛停電了一般處于半癱瘓狀態(tài)。Java的身影遍布地球的各個(gè)角落,甚至已經(jīng)走向了太空,那么,想要用Jav

6、a改變這個(gè)世界嗎?馬上開(kāi)始我們的Java之旅吧!1.2 準(zhǔn)備好開(kāi)始Java之旅JDK(Java SE Development Kit)是整個(gè)Java世界的基礎(chǔ)。它就好像是一片肥沃的疆土,有山川和河流,有各種各樣的資源。本書(shū)中所講述的內(nèi)容就是利用它來(lái)構(gòu)建自己的Java世界。在本章第5節(jié)的名詞解釋中,我們會(huì)對(duì)JDK在技術(shù)層面上有一個(gè)大概的敘述。本節(jié)中我們將會(huì)介紹如何安裝JDK到電腦上,如何進(jìn)行環(huán)境配置,并且將可能出錯(cuò)的地方指出來(lái)。最后會(huì)通過(guò)Windows的控制臺(tái)來(lái)測(cè)試安裝是否成功。本節(jié)所做的事情是運(yùn)行本書(shū)中程序的基礎(chǔ)。1.2.1 下載JDK先下載JDK的安裝程序到本地硬盤(pán)上。打開(kāi)瀏覽器,在瀏覽器的

7、地址欄輸入http:/ (1)將鼠標(biāo)移動(dòng)到頁(yè)面導(dǎo)航欄中的Downloads項(xiàng),選擇Java SE菜單項(xiàng),如圖1-3 所示。(2)在下載頁(yè)面中可以看到有很多版本可以選擇。圖1-4是本書(shū)編寫(xiě)時(shí),Downloads頁(yè)面中列出的前幾項(xiàng)內(nèi)容。 圖1-3 Sun公司Java站點(diǎn)的導(dǎo)航欄 圖1-4 JDK下載列表%注意:也許在下載過(guò)程中會(huì)看到有JRE(Java Runtime Environment,顧名思義,它是Java程序運(yùn)行的環(huán)境,屬于JDK的一部分)的下載鏈接,請(qǐng)不要下載它。它和我們需要下載的JDK是不一樣的。JDK的安裝文件中包含JRE。(3)這里下載JDK 6 Update 14,也就是圖1-4

8、中最下方的條目。單擊JDK 6 Update 14右邊的Download鏈接,進(jìn)入下載選項(xiàng)頁(yè)面,如圖1-5所示。(4)這里根據(jù)自己的計(jì)算機(jī)選擇合適的選項(xiàng)。Platform就是JDK運(yùn)行的平臺(tái),一般都是Windows,如果自己的操作系統(tǒng)是64位的,那么就選擇Windows x64。Language就是JDK的語(yǔ)言,我們選擇Multi-language。選擇完畢后,選中【I agree to the Java SE Development Kit 6 License Agreement】復(fù)選框,然后單擊Continue按鈕,在下一個(gè)頁(yè)面中,就可以下載JDK了。單擊【jdk-6u14-windows

9、-i586-p.exe】鏈接進(jìn)行下載,如圖1-6所示。(5)單擊后,會(huì)出現(xiàn)文件下載對(duì)話框,下載的文件名為jdk-6u14-windows-i586-p.exe。 圖1-5 JDK平臺(tái)選項(xiàng) 圖1-6 JDK安裝程序下載條目(6)在下載對(duì)話框中單擊【保存】按鈕,在彈出的【另存為】對(duì)話框中,選擇一個(gè)目錄保存安裝文件,本例中保存在桌面上。下載結(jié)束后,就可以進(jìn)入下一節(jié)中進(jìn)行安裝。%注意:Sun的Java站點(diǎn)可能會(huì)有改動(dòng),但是整個(gè)下載過(guò)程應(yīng)該類(lèi)似。如果無(wú)法從Sun的官方站點(diǎn)下載JDK,為了安全起見(jiàn)請(qǐng)不要去隨便找個(gè)JDK下載??梢匀フ?guī)的站點(diǎn)下載,例如天空軟件站(http:/ 1.2.2 安裝JDK下載結(jié)束

10、后,可以進(jìn)行安裝了。(1)雙擊下載的安裝文件(本例中是jdk-6u7-windows-i586-p.exe)啟動(dòng)安裝程序,安裝程序會(huì)開(kāi)始準(zhǔn)備安裝,如圖1-7所示。(2)準(zhǔn)備好后,會(huì)看到【許可證協(xié)議】對(duì)話框,如圖1-8所示。 圖1-7 JDK安裝向?qū)?圖1-8 JDK許可證協(xié)議對(duì)話框(3)單擊【接受】按鈕彈出【自定義安裝】對(duì)話框,如圖1-9所示。(4)可以更改安裝位置,本例中接受默認(rèn)安裝路徑,單擊【下一步】按鈕繼續(xù)。然后會(huì)看到安裝進(jìn)度對(duì)話框,如圖1-10所示。(5)中途會(huì)有JRE的自定義安裝對(duì)話框,它是JDK的一個(gè)組件,如圖1-11所示,這里直接單擊【下一步】按鈕繼續(xù)。(6)之后是安裝進(jìn)度對(duì)話框

11、,如圖1-12所示。 圖1-9 JDK自定義安裝對(duì)話框 圖1-10 JDK安裝進(jìn)度對(duì)話框 圖1-11 JRE的安裝對(duì)話框 圖1-12 Java安裝進(jìn)度對(duì)話框(7)安裝結(jié)束,看到安裝完成對(duì)話框,如圖1-13所示,單擊【完成】按鈕完成JDK的安裝。圖1-13 JDK安裝成功對(duì)話框1.2.3 配置環(huán)境變量安裝JDK之后,還需要配置一下Windows的環(huán)境變量才能夠讓這個(gè)JDK好好工作。環(huán)境變量就是操作系統(tǒng)中應(yīng)用程序獲取一些運(yùn)行參數(shù)的地方。這里沒(méi)必要對(duì)這個(gè)概念深入了解,它不屬于Java的范疇。這里給出的是在Windows XP中文版上配置環(huán)境變量的過(guò)程。在其他版本上的過(guò)程也類(lèi)似。(1)首先右擊【我的電

12、腦】,在彈出的快捷菜單中選擇【屬性】命令,彈出【系統(tǒng)屬性】對(duì)話框。選擇【高級(jí)】標(biāo)簽,進(jìn)入【高級(jí)】選項(xiàng)卡找到【環(huán)境變量】按鈕,如圖1-14所示。(2)單擊【環(huán)境變量】按鈕打開(kāi)【環(huán)境變量】對(duì)話框。在該對(duì)話框中,找到【系統(tǒng)變量】面板中的Path變量,如圖1-15所示。 圖1-14 【系統(tǒng)屬性】對(duì)話框 圖1-15 【環(huán)境變量】對(duì)話框(3)單擊【系統(tǒng)變量】面板下的【編輯】按鈕,在彈出的【編輯系統(tǒng)變量】對(duì)話框中,將光標(biāo)移到【變量值】文本框的最前端,將“JDK安裝目錄bin;”(對(duì)于本例就是“C:Program FilesJavajdk1.6.0_14bin;”如果安裝過(guò)程中更改了JDK的安裝路徑,在這里需

13、要將bin 前面的路徑變?yōu)閷?shí)際的JDK安裝目錄。注意,引號(hào)不要寫(xiě)進(jìn)去)添加到里面,如圖1-16所示。%注意:要添加到Path變量的值是C:Program FilesJavajdk1.6.0_14bin;,也就是“JDK安裝目錄”+“bin”+“;”最后的分號(hào)不要漏掉。分號(hào)要使用英語(yǔ)中的分號(hào),不要使用漢語(yǔ)中的分號(hào)。同時(shí)要注意是向Path變量中添加一段自己的內(nèi)容,不要將Path變量中原來(lái)的值覆蓋掉。(4)修改完畢后單擊【確定】按鈕。這時(shí)會(huì)回到【環(huán)境變量】對(duì)話框。單擊【系統(tǒng)變量】面板中的【添加】按鈕,在彈出的【新建系統(tǒng)變量】對(duì)話框中添加CLASSPATH變量,變量值為“.; C:Program Fi

14、lesJavajdk1.6.0_14lib”,也就是“.”+“;”+“JDK安裝目錄”+“l(fā)ib”(同樣不包含引號(hào),所有標(biāo)點(diǎn)都使用英文標(biāo)點(diǎn)),如圖1-17所示。(5)填加完畢后單擊【確定】按鈕,回到【環(huán)境變量】對(duì)話框。然后再單擊【系統(tǒng)變量】面板中的【添加】按鈕,在彈出的【編輯系統(tǒng)變量】對(duì)話框中添加JAVA_HOME變量,變量值為“C:Program FilesJavajdk1.6.0_14”,也就是“JDK安裝目錄”,如圖1-18所示。 圖1-16 編輯環(huán)境變量Path 圖1-17 新建環(huán)境變量CLASSPATH(6)添加完畢后單擊【確定】按鈕,回到【環(huán)境變量】對(duì)話框。單擊【環(huán)境變量】對(duì)話框最

15、下方的【確定】按鈕完成對(duì)環(huán)境變量的修改和添加。%注意:如果是第一次修改和添加環(huán)境變量,很可能會(huì)出錯(cuò)。Windows XP的【編輯系統(tǒng)變量】和【新建系統(tǒng)變量】對(duì)話框設(shè)計(jì)得不夠人性化,變量值文本條很短而且對(duì)話框不能改變大小,這對(duì)于變量值很長(zhǎng)的變量,如path變量,是不方便的。在操作環(huán)境變量值的時(shí)候,一定要小心,可以先把值寫(xiě)到Windows XP自帶的記事本中,確認(rèn)值無(wú)誤后再?gòu)?fù)制到【變量值】文本框中。1.2.4 測(cè)試環(huán)境是否安裝成功通過(guò)上面兩節(jié)的努力,我們應(yīng)該已經(jīng)獲得了Java世界的準(zhǔn)入證。不過(guò)還是需要先測(cè)試一下。(1)首先在Windows XP桌面上單擊【開(kāi)始】按鈕,在彈出的開(kāi)始菜單中選擇【運(yùn)行】

16、選項(xiàng)。在彈出的【運(yùn)行】運(yùn)行對(duì)話框中,輸入“cmd”,如圖1-19所示。 圖1-18 新建環(huán)境變量JAVA_HOME 圖1-19 運(yùn)行cmd命令(2)單擊【確定】按鈕,可以打開(kāi)一個(gè)命令行窗口。在命令行窗口中輸入“java”,然后回車(chē)。如果環(huán)境配置正確,應(yīng)該能夠看看到如圖1-20的輸出。圖1-20 java命令在控制臺(tái)的輸出(3)然后繼續(xù)輸入“javac”,回車(chē),應(yīng)該能夠看到如圖1-21的輸出。圖1-21 javac命令在控制臺(tái)的輸出(4)輸入javaversion,回車(chē),然后再輸入javac version,回車(chē),應(yīng)該可以看到類(lèi)似圖1-22的輸出。圖1-22 JDK版本信息其中1.6.0_14就

17、是版本號(hào)。1.2.5 如果失敗了怎么辦?如果1.2.4節(jié)中的測(cè)試環(huán)境沒(méi)有通過(guò),也不必著急。首先按照書(shū)中步驟重新檢查一遍,確保自己都是做得正確的。下面給出幾種可能出現(xiàn)的錯(cuò)誤。1情況一如果無(wú)法通過(guò)【開(kāi)始】|【運(yùn)行】命令,執(zhí)行cmd命令打開(kāi)一個(gè)控制臺(tái)窗口,那么有可能是在編輯Path環(huán)境變量的時(shí)候?qū)⒃瓉?lái)的環(huán)境變量值給清除了。如果這樣,那么重新打開(kāi)對(duì)path環(huán)境變量的編輯框,將后面的值C:WINDOWSsystem32;C:WINDOWS;C: WINDOWSSystem32Wbem;輸入到里面,然后單擊確認(rèn)(這里假設(shè)C盤(pán)是系統(tǒng)安裝盤(pán),如果不是請(qǐng)將C修改為相應(yīng)的系統(tǒng)盤(pán)符)。2情況二如果在命令行窗口中運(yùn)行

18、javac命令時(shí),命令行窗口提示“'javac' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件?!?,但是可以在命令行窗口運(yùn)行java命令,那么可能是JDK安裝失敗了。請(qǐng)去JDK安裝目錄(本例中是C:Program FilesJavajdk1.6.0_07)下的bin目錄中查看是否有java.exe和javac.exe兩個(gè)文件,如果沒(méi)有,則說(shuō)明JDK安裝 失敗。這時(shí)候請(qǐng)打開(kāi)Windows XP的【控制面板】|【添加/刪除程序】命令,在打開(kāi)的【添加/刪除程序】對(duì)話框中將JDK卸載后重新安裝。JDK安裝程序在【添加/刪除程序】對(duì)話框中添加了兩個(gè)條目,它們的名字根據(jù)版本可能有所不

19、同,本例中就是“Java(TM) SE Development Kit 6 Update 14”和“ Java(TM) 6 Update 14”。刪除它們之后,然后嘗試重新運(yùn)行JDK安裝程序和配置環(huán)境變量。%注意:配置環(huán)境是一個(gè)需要細(xì)心的工作。環(huán)境千差萬(wàn)別,偶爾失敗是正常的。其實(shí)安裝JDK應(yīng)該是一個(gè)簡(jiǎn)單的過(guò)程,我們需要注意的是在環(huán)境變量中不要使用中文標(biāo)點(diǎn)符號(hào)。如果安裝不成功,嘗試將JDK先卸載,然后將JDK安裝到一個(gè)沒(méi)有空格的路徑下。本例中假設(shè)C盤(pán)是系統(tǒng)盤(pán)。1.3 讓自己的第一個(gè)程序運(yùn)行起來(lái)按照“國(guó)際慣例”,學(xué)習(xí)一門(mén)語(yǔ)言的第一個(gè)程序就是在控制臺(tái)輸出一行字:“Hello World!”。在這里沿

20、襲這個(gè)慣例。本節(jié)中將編寫(xiě)第一個(gè)Java程序,并且借助JDK提供的工具,使這個(gè)程序運(yùn)行起來(lái),在控制臺(tái)輸出“Hello World!”。本節(jié)中還將會(huì)涉及一些排除錯(cuò)誤的方法,以后可能會(huì)經(jīng)常用到這些方法找出錯(cuò)誤所在。1.3.1 編寫(xiě)自己的Hello World源程序什么是編程呢?編程其實(shí)就是使用一種編程語(yǔ)言(這里就是Java語(yǔ)言),利用自己的聰明才智,編寫(xiě)出源代碼,讓計(jì)算機(jī)按照源代碼中的步驟幫我們做事情。什么是源程序呢?源程序就是我們跟Java的世界交互的語(yǔ)言。只要提供正確的源程序,Java平臺(tái)就可以“理解”并乖乖地按照源程序中寫(xiě)的那樣做。我們現(xiàn)在想做的事情就是讓計(jì)算機(jī)在控制臺(tái)輸出一行字“Hello

21、World!”。首先給出能夠完成這件事情的Java源程序。public class HelloWorld public static void main(String args)System.out.println("Hello World");暫且稱(chēng)這個(gè)程序?yàn)镠elloWorld程序(意思就是這個(gè)是入門(mén)程序)。下面將源程序?qū)懴聛?lái)。首先打開(kāi)Windows XP自帶的記事本程序。選擇Windows任務(wù)欄上的【開(kāi)始】|【所有程序】|【附件】|【記事本】命令,打開(kāi)記事本。然后將上面五行程序敲進(jìn)去。保存到本地磁盤(pán)。這里假設(shè)保存到C盤(pán)根目錄。這里需要注意的是,這個(gè)文件必須命名為Hel

22、loWorld.java,如圖1-23所示。那么這個(gè)文件的路徑就是C:HelloWorld.java。這里有必要檢查一下這個(gè)文件的后綴名是否真的如所想的那樣。文件的后綴名就是文件名中最后一個(gè)點(diǎn)號(hào)(.)之后的內(nèi)容,對(duì)于HelloWorld.java文件,它的后綴名就是java。這是Java源程序的后綴名。Windows XP默認(rèn)是不會(huì)顯示文件后綴名的。為了檢查文件后綴名的正確性,我們讓W(xué)indows XP顯示文件后綴名。首先選擇【我的電腦】|【工具】|【文件夾選項(xiàng)】命令。在彈出的【文件夾選項(xiàng)】對(duì)話框中,選擇【查看】標(biāo)簽,進(jìn)入【查看】選項(xiàng)卡。在【高級(jí)設(shè)置】選項(xiàng)區(qū)域中使用滾動(dòng)條找到【隱藏已知文件類(lèi)型

23、的擴(kuò)展名】條目,取消前面的勾選狀態(tài),如圖1-24所示。 圖1-23 將源文件另存為HelloWorld.java 圖1-24 文件夾選項(xiàng)再進(jìn)入C盤(pán)根目錄,查看一下HelloWorld文件后綴名是不是java。這時(shí)會(huì)看到HelloWorld文件的后綴名確實(shí)是java,而且在【類(lèi)型】欄中,HelloWorld的類(lèi)型是JAVA文件,如圖1-25所示。圖1-25 檢查HelloWorld源文件后綴好,當(dāng)我們確定文件名的正確性后,進(jìn)行下一節(jié):編譯源程序。%注意:在本例程中,文件名一定要是HelloWorld.java。讓W(xué)indows XP顯示文件后綴是一個(gè)好習(xí)慣,這樣可以方便地知道一個(gè)文件的后綴,并在

24、必要時(shí)對(duì)文件后綴名進(jìn)行修改。1.3.2 編譯自己的HelloWorld程序什么是編譯呢?簡(jiǎn)言之,編譯就是讓一個(gè)Java源程序轉(zhuǎn)換成Java平臺(tái)可以執(zhí)行的程序代碼。就好像翻譯一樣。源程序是人們可以讀懂的東西,而Java平臺(tái)卻不能執(zhí)行源程序。通過(guò)編譯源代碼這個(gè)步驟,就可以生成在Java平臺(tái)上執(zhí)行的程序。關(guān)于編譯會(huì)在1.4節(jié)中做解釋。這里先來(lái)實(shí)地操作一下,看看如何來(lái)編譯一個(gè)Java源程序。首先打開(kāi)一個(gè)命令行窗口,通過(guò)DOS命令進(jìn)入C盤(pán),這里就是在上一節(jié)中保存HelloWorld.java的地方。然后輸入編譯命令:javac HelloWorld.java,,按下Enter鍵。這時(shí)候程序開(kāi)始編譯,編譯

25、結(jié)束后命令行會(huì)回到根目錄。整個(gè)過(guò)程命令行內(nèi)容如下:C:>javac HelloWorld.javaC:>怎么知道是否編譯成功了呢?其實(shí)沒(méi)有錯(cuò)誤輸出,就說(shuō)明編譯成功了。如果編譯出錯(cuò)了,首先要確定是環(huán)境配置問(wèn)題還是源程序錯(cuò)誤。首先回到1.2.4節(jié)中重新測(cè)試一下Java平臺(tái)安裝是否成功。如果不成功,按照1.2節(jié)的內(nèi)容重新配置一下。如果環(huán)境是對(duì)的,那就說(shuō)明是源程序有問(wèn)題了。對(duì)于只有5行的小程序來(lái)說(shuō),有如下3個(gè)最常見(jiàn)的問(wèn)題。1在程序中使用了中文標(biāo)點(diǎn)符號(hào)在這種情況下,控制臺(tái)應(yīng)該輸出類(lèi)似“非法字符”的錯(cuò)誤提示,內(nèi)容可能如下:C:>javac HelloWorld.javaHelloWorl

26、d.java:3: 非法字符: 8220System.out.println("Hellow World"); HelloWorld.java:3: 需要 ''System.out.println("Hellow World"); HelloWorld.java:3: 不是語(yǔ)句System.out.println("Hellow World"); HelloWorld.java:3: 需要 ''System.out.println("Hellow World"); HelloWorl

27、d.java:3: 非法字符: 8221System.out.println("Hellow World"); 5 錯(cuò)誤C:>引發(fā)上面錯(cuò)誤的原因是在源程序中使用中文的引號(hào)(“”)而不是英文的引號(hào)("")。Java程序中不允許使用中文的標(biāo)點(diǎn)符號(hào)或全角字符作為程序體的內(nèi)容。在源程序中使用的標(biāo)點(diǎn)符號(hào)(如 () ; "")都是英文下的標(biāo)點(diǎn)符號(hào);同樣,程序中使用的字符也都是英文字符,而不是全角字符??梢詫⑤斎敕ㄇ袚Q到英文的輸入法,再次嘗試重新輸入程序。%注意:講到這里也許迷惑:Java不能處理中文嗎?放心,Java程序是可以處理中文數(shù)據(jù)的

28、,但是Java語(yǔ)言的定義中不能夠使用中文字符。這里要理解的是程序和程序處理的數(shù)據(jù)是不同的概念。這一點(diǎn)到后面就會(huì)理解。2括號(hào)不匹配在這種情況下,控制臺(tái)應(yīng)該輸出類(lèi)似如下的內(nèi)容。C:>javac HelloWorld.javaHelloWorld.java:3: 需要 ')'System.out.println "Hellow World"1 錯(cuò)誤上面的錯(cuò)誤是由于使用大括號(hào)去和小括號(hào)匹配造成的。C:>javac HelloWorld.javaHelloWorld.java:4: 進(jìn)行語(yǔ)法解析時(shí)已到達(dá)文件結(jié)尾1 錯(cuò)誤上面的錯(cuò)誤是因?yàn)槁┑粢粋€(gè)大括號(hào)造成的。

29、在Java程序中,括號(hào)都是匹配的。如果有一處出現(xiàn)了左小括號(hào),肯定會(huì)有一個(gè)右小括號(hào)與之對(duì)應(yīng)。這和數(shù)學(xué)中使用括號(hào)是一樣的。檢查一下自己輸入的源程序是否有漏掉的括號(hào),或者是將大小括號(hào)弄混了。%注意:在什么情況下使用大括號(hào)什么情況下使用小括號(hào),是屬于Java語(yǔ)法的范疇,我們會(huì)在本書(shū)后面的章節(jié)介紹,在這里先不去想為什么,先將程序照著寫(xiě)就好了。3程序編寫(xiě)錯(cuò)了開(kāi)始我們很有可能將程序中的某個(gè)單詞寫(xiě)錯(cuò)。寫(xiě)程序是個(gè)需要細(xì)心的工作。如果前面兩步都沒(méi)有問(wèn)題,那很有可能是某個(gè)單詞寫(xiě)錯(cuò)了。瞪大眼睛找出程序?qū)戝e(cuò)了的地方也是程序員經(jīng)常需要做的事情。每個(gè)程序員都要有一雙“火眼金睛”。如果還是不行,沒(méi)關(guān)系,誰(shuí)都有腦子短路的時(shí)候,

30、尤其是剛剛學(xué)習(xí)一門(mén)新語(yǔ)言。我們可以打開(kāi)光盤(pán)上的例程跟自己的程序?qū)Ρ纫幌隆1菊轮羞@個(gè)HelloWorld.java的源程序就是隨書(shū)光盤(pán)上的soucecodeChapter1HelloWorld.java。如果實(shí)在找不出錯(cuò)誤所在,為了進(jìn)行編譯,可以直接將光盤(pán)上的源程序復(fù)制到自己的C盤(pán)根目錄下。其實(shí)第一次寫(xiě)程序就能夠完全正確的幾率是很小的。%注意:要復(fù)制光盤(pán)上的HelloWorld.java到C盤(pán),不要在命令行窗口中進(jìn)入光盤(pán)下對(duì)HelloWorld.java進(jìn)行編譯。編譯過(guò)程會(huì)對(duì)HelloWorld.java所在的目錄進(jìn)行寫(xiě)操作,隨書(shū)光盤(pán)是不支持多次擦寫(xiě)的,這就會(huì)造成編譯失敗??傊?dāng)最后把Hell

31、oWorld.java搞定了之后,重新編譯一下。如果能夠得到本節(jié)開(kāi)始給出的結(jié)果,那么編譯就成功了。為了確保真的成功了,可以打開(kāi)我的電腦,進(jìn)入C盤(pán)。這時(shí)可以發(fā)現(xiàn)有一個(gè)新的文件叫做HelloWorld.class。這個(gè)文件就是編譯的結(jié)果,這個(gè)文件的內(nèi)容就是Java平臺(tái)可以讀懂的程序文件?,F(xiàn)在可以進(jìn)入下一節(jié),執(zhí)行程序。q 我們眼中的源文件(HelloWorld.java文件)就是Java平臺(tái)眼中的class(HelloWorld.class)文件。q 學(xué)習(xí)編寫(xiě)第一個(gè)簡(jiǎn)單的程序。1.3.3 讓代碼運(yùn)行起來(lái)本節(jié),來(lái)讓我們的Java程序在Java平臺(tái)上運(yùn)行起來(lái)。通過(guò)1.3.2節(jié)的介紹可以知道,HelloW

32、orld.class文件就是編譯的結(jié)果。現(xiàn)在,我們就要讓Java平臺(tái)執(zhí)行這個(gè)文件,達(dá)到編寫(xiě)HelloWorld源程序的目的向控制臺(tái)輸出“Hello World”。首先打開(kāi)一個(gè)命令行窗口,進(jìn)入C盤(pán)根目錄。輸入命令“java HelloWorld”,按下Enter鍵,在控制臺(tái)應(yīng)該得到如下輸出。C:>java HelloWorldHello WorldC:>%說(shuō)明:什么是執(zhí)行一個(gè)文件呢?其實(shí)就是執(zhí)行一個(gè)程序文件。其意義就是讓計(jì)算機(jī)按照程序文件的內(nèi)容做一些事情。程序文件有很多種。例如我們下載的JDK安裝程序就是一個(gè)程序文件,它的后綴名是exe。Windows XP可以識(shí)別并執(zhí)行這個(gè)文件。這

33、個(gè)文件讓W(xué)indows XP做的事情就是在計(jì)算機(jī)上安裝JDK。Windows XP下使用的計(jì)算器、記事本、命令行窗口等都是有相應(yīng)的程序文件與之對(duì)應(yīng)的。同樣,class文件也是一個(gè)程序文件,只是這個(gè)程序文件不能被Windows XP直接執(zhí)行,需要在Java平臺(tái)上執(zhí)行。其中第一行中的“java”意思就是要開(kāi)始執(zhí)行一個(gè)Java程序了,緊隨其后的HelloWorld就是程序的名字,這時(shí)候java命令就會(huì)自動(dòng)去尋找“HelloWorld.class”文件,并將之加載到Java平臺(tái)上,然后來(lái)執(zhí)行這個(gè)文件。其中第二行中的“Hello World”就是Java平臺(tái)執(zhí)行程序的輸出結(jié)果。到這里為止,我們已經(jīng)搭建好

34、了Java平臺(tái),配置好了環(huán)境變量,并且編寫(xiě)、編譯和運(yùn)行了自己的第一個(gè)源程序。在1.4節(jié)里將對(duì)我們的第一個(gè)Java源程序做初步剖析。1.4 初探Hello World本節(jié)中將對(duì)Hello World程序做一個(gè)初步的剖析,介紹程序中的各個(gè)組成部分,大家對(duì)Java程序有一個(gè)感性的認(rèn)識(shí)就好。如果讀完本節(jié)之后,再次看Hello World程序,有一種“長(zhǎng)得這個(gè)樣子的就是Java程序”的感覺(jué),那么本節(jié)的目的就達(dá)到了。1.4.1 類(lèi)(Class):Java世界中一類(lèi)物體首先,我們看到的第一行程序就是“public class HelloWorld ”,根據(jù)常理推斷,后面肯定有一個(gè)大括號(hào)和這行中出現(xiàn)在最后的那

35、個(gè)大括號(hào)匹配。沒(méi)錯(cuò),與之匹配的大括號(hào)就是源程序最后一行中那個(gè)大括號(hào)。也就是在本程序中,第一行和最后一行組成了一個(gè)整體。public class HelloWorld 這是一個(gè)什么呢?在Java中這叫做一個(gè)類(lèi)。HelloWorld就是這個(gè)類(lèi)的名字。而開(kāi)頭的public class兩個(gè)單詞是用來(lái)“修飾”HelloWorld的。類(lèi)是什么呢?在Java中類(lèi)就代表一類(lèi)物體。現(xiàn)在也許我們還是覺(jué)得太抽象,沒(méi)關(guān)系,本書(shū)后面的章節(jié)還會(huì)詳細(xì)介紹Java類(lèi)。在這里先不用去理解什么是類(lèi),類(lèi)是用來(lái)做什么的,只要先知道上面兩行組成的東西叫做“類(lèi)”,它的名字叫做“HelloWorld”就行了。在1.3.1節(jié)中強(qiáng)調(diào)過(guò):保存源

36、程序文件的名字必須是HelloWorld。其原因就是Java語(yǔ)法規(guī)定的:Java源程序的文件名必須與類(lèi)名相同。否則在編譯的時(shí)候?qū)?huì)有錯(cuò)誤。同樣,如下這個(gè)類(lèi),它的名字就是NameTest,這個(gè)類(lèi)的源代碼就必須保存在文件名叫做NameTest.java的文件中。public class NameTest類(lèi)名后面緊跟的一對(duì)大括號(hào)內(nèi)部就是類(lèi)的內(nèi)容。類(lèi)中可以有什么內(nèi)容呢?在我們的HelloWorld中,類(lèi)中只有一個(gè)方法(Method),什么是方法?請(qǐng)看1.4.2節(jié)。q Java源文件名必須與類(lèi)名相同。Java源文件后綴名必須是java。q 類(lèi)的內(nèi)容就是類(lèi)名后面的一對(duì)大括號(hào)括起來(lái)的內(nèi)容。1.4.2 方法(

37、Method):物體的功能方法是什么?方法是類(lèi)的功能,是一段程序的載體。方法也有名字,方法的內(nèi)容也是用一對(duì)大括號(hào)括起來(lái)的。我們看第二行,其中public static void 都是用來(lái)修飾方法的,方法名就叫做main()。方法后面的一對(duì)小括號(hào)是這個(gè)方法的參數(shù)。什么是參數(shù)呢?參數(shù)可以說(shuō)就是這個(gè)方法運(yùn)行時(shí)需要的數(shù)據(jù)。然后就是大括號(hào),大括號(hào)內(nèi)部就是方法的真正內(nèi)容。下面就是整個(gè)方法的定義。public static void main(String args)System.out.println("Hello World");方法大括號(hào)內(nèi)的內(nèi)容就是方法的主體。在這里就只有一行:S

38、ystem.out.println("Hello World");,作用是向控制臺(tái)輸出Hello World。對(duì)于方法,有很多東西是沒(méi)必要先理解的,之所以要在這里介紹,只是因?yàn)槌绦蛑谐霈F(xiàn)了,不說(shuō)不行。學(xué)習(xí)一門(mén)語(yǔ)言,必須要選一個(gè)破冰之處。在這里,只需要知道方法名字是什么,方法的內(nèi)容是在方法名字后面的大括號(hào)里面就可以了。對(duì)于方法的詳細(xì)講解會(huì)在本書(shū)后面介紹。還有一點(diǎn)需要記住的是,Java的方法必須在類(lèi)中,也就是一個(gè)Java方法必須屬于某個(gè)類(lèi)。Java方法是不能獨(dú)立于類(lèi)存在的。q 方法也有方法名,有方法體。方法體是方法的主要內(nèi)容。q 方法必須屬于某個(gè)類(lèi)。1.4.3 main()方法

39、:所有Java程序執(zhí)行的起點(diǎn)現(xiàn)在我們還有一個(gè)疑問(wèn),Java平臺(tái)是如何執(zhí)行這個(gè)程序的呢?其實(shí)Java平臺(tái)會(huì)先去這個(gè)類(lèi)中尋找叫做main()的方法,找到就會(huì)執(zhí)行,找不到就會(huì)報(bào)錯(cuò),錯(cuò)誤信息就是找不到main()方法。現(xiàn)在我們嘗試將HelloWorld中叫做main()的方法改個(gè)名字,不妨叫做mymain。public class HelloWorld public static void mymain(String args)System.out.println("Hello World");編譯一下,沒(méi)有錯(cuò)誤。當(dāng)我們嘗試去運(yùn)行一下這個(gè)沒(méi)有main()方法的程序時(shí),就會(huì)得到如下錯(cuò)

40、誤:C:>java HelloWorldException in thread "main" java.lang.NoSuchMethodError: mainC:>這里不去深究為什么,只要記住Java程序的入口是叫做main()的方法。如果執(zhí)行一個(gè)程序的時(shí)候Java平臺(tái)找不到main()方法,就會(huì)拋出錯(cuò)誤并停止執(zhí)行。舉例來(lái)說(shuō),main()方法就類(lèi)似我們平時(shí)放鞭炮時(shí)候的引線。如果沒(méi)有引線,一個(gè)鞭炮當(dāng)然是無(wú)法燃放的,但是,鞭炮的重點(diǎn)不是引線。同樣,main()方法也僅僅是用來(lái)啟動(dòng)一個(gè)程序,但是為了先熟悉Java語(yǔ)言的一些基本語(yǔ)法,在本書(shū)的第一部分和第二部分中,ma

41、in()方法可以說(shuō)既做“引線”又做“鞭炮”。本書(shū)前兩部分的程序基本都是在main()方法中。當(dāng)我們熟悉了Java語(yǔ)言的基本語(yǔ)法后,在本書(shū)的第三部分中,main()方法將會(huì)僅僅扮演一個(gè)“引線”,真正的主角將是我們自己寫(xiě)的Java類(lèi)。現(xiàn)在先在main()方法內(nèi)部做做文章。q main()方法是Java程序的入口。當(dāng)嘗試直接運(yùn)行一個(gè)沒(méi)有main()方法的程序時(shí),Java平臺(tái)會(huì)因?yàn)檎也坏絤ain()方法而拋出一個(gè)錯(cuò)誤。1.5 名 詞 解 釋本節(jié)將對(duì)本章出現(xiàn)的名字做一個(gè)直觀的解釋。隨著學(xué)習(xí)的深入,您將對(duì)這些名詞有更深的認(rèn)識(shí)。1.5.1 JDK和Java平臺(tái)本章的1.2節(jié)中介紹了怎樣安裝JDK。JDK就是

42、整個(gè)Java世界的基礎(chǔ),本書(shū)中有時(shí)候也稱(chēng)之為Java平臺(tái)。為什么稱(chēng)之為Java世界的基礎(chǔ)呢?因?yàn)榫帉?xiě)Java程序就是使用Java構(gòu)建一個(gè)自己的世界,但是構(gòu)建一個(gè)世界肯定需要基礎(chǔ),不可能完全從頭開(kāi)始。舉例來(lái)說(shuō),在魯賓遜漂流記中,魯賓遜漂流到了一個(gè)荒無(wú)人煙的小島,他面臨的問(wèn)題就是使用自己的智慧和技巧,構(gòu)建一個(gè)自己可以生存的世界。雖然是荒島,但也不是什么都沒(méi)有。他可以得到水、陽(yáng)光、風(fēng)、木頭、石頭、食物、植物的藤條等。Java平臺(tái)也是這樣,它為我們提供了基礎(chǔ),可以使用這些基礎(chǔ)來(lái)編寫(xiě)自己的程序,構(gòu)建自己想要的世界。下面簡(jiǎn)單介紹一下JDK提供的這個(gè)Java世界的基礎(chǔ)有哪幾部分,它們的作用分別是什么。我們還

43、是會(huì)結(jié)合魯賓遜漂流記的例子來(lái)說(shuō)明。1.5.2 Java編譯器(Java Compiler)編譯器會(huì)將一個(gè)Java源程序轉(zhuǎn)換成Java世界可以理解的物體。我們通過(guò)在命令行輸入javac命令來(lái)調(diào)用Java編譯器。Java編譯器會(huì)檢查一個(gè)源程序是否符合Java語(yǔ)言的語(yǔ)法。可以將編譯器理解為魯賓遜所處的那個(gè)島上的基本物理定律,如F=am、動(dòng)量守恒定律、真空中光速為299792458.458米/秒、1+1=2等。這些東西是不可違背的,同時(shí)也是沒(méi)有道理好講的。在Java中類(lèi)似的東西稱(chēng)為Java語(yǔ)法。在命令行通過(guò)javac命令來(lái)調(diào)用Java編譯器去編譯一個(gè)Java源程序時(shí),Java編譯器就會(huì)檢查源程序是否符

44、合Java語(yǔ)法。如果不符合,就會(huì)給出錯(cuò)誤;如果符合,就會(huì)同時(shí)將Java源程序轉(zhuǎn)換成Java世界可以理解的語(yǔ)言(結(jié)果就是產(chǎn)生了那個(gè).class文件)。這里的class文件其實(shí)就相當(dāng)于Windows里常見(jiàn)的可執(zhí)行文件(即后綴為exe的文件)。簡(jiǎn)言之,必須先學(xué)會(huì)聽(tīng)Java的話,Java才能聽(tīng)我們的話,做我們想讓它做的事情。1.5.3 Java類(lèi)庫(kù)(Java Class Libraries)Java類(lèi)庫(kù)是Java提供的構(gòu)建自己的Java世界的各種元素。它就相當(dāng)于是魯賓遜所 在的那個(gè)島上的一切物質(zhì):水、陽(yáng)光、空氣、石頭、小草、泥土、椰樹(shù)等。我們必須使 用Java類(lèi)庫(kù)來(lái)構(gòu)建自己的Java世界(HelloWorld程序中使用的System.out.println就是來(lái)自Java類(lèi)庫(kù))。開(kāi)始我們也許只能夠做一些簡(jiǎn)單的事情,像魯賓遜一樣簡(jiǎn)單地使用石頭砸開(kāi)椰樹(shù)得到椰汁一樣;在本書(shū)的最后部分,我們將使用Java類(lèi)庫(kù)構(gòu)建出復(fù)雜的程序。1.5.4 Java虛擬機(jī)(Java Virtual Machine)Java虛擬機(jī)(Java Virtual Machine):Java虛擬機(jī)的作用是去執(zhí)行一個(gè)Java程序。通過(guò)在命令行使用java命令來(lái)啟動(dòng)Java虛擬機(jī)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論