JAVA精靈 第五章 兄弟們餐弱,咱動(dòng)手吧!

經(jīng)過前面幾章的講述囱晴,相信大家已經(jīng)對(duì)Java已有了基本的了解膏蚓。這一章,我就教大家如何去寫一個(gè)最最最簡(jiǎn)單的程序畸写。前面我們已經(jīng)提到降允,Java程序是在虛擬機(jī)當(dāng)中運(yùn)行的,所以艺糜,你的電腦應(yīng)該要安裝一個(gè)虛擬機(jī)(一個(gè)軟件),這個(gè)虛擬機(jī)我們將其稱為“Java運(yùn)行環(huán)境(Java Runtime Environment幢尚,簡(jiǎn)稱JRE)”破停。同時(shí),由于我們的“代碼”在運(yùn)行之前要先編譯成為“字節(jié)碼”尉剩,所以我們還需要一個(gè)工具來對(duì)代碼進(jìn)行編譯真慢,我已經(jīng)為大家準(zhǔn)備好這個(gè)工具包,名稱為JDK(Java SE Development Kit)理茎,這個(gè)工具包本身已經(jīng)捆綁了JRE黑界,所以你如果要進(jìn)行簡(jiǎn)單的開發(fā)管嬉,只要下載JDK然后安裝就可以了。當(dāng)然朗鸠,如果是真正的開發(fā)蚯撩,僅僅依靠JDK是不夠的,所以網(wǎng)絡(luò)上還提供了很多工具烛占,比較著名的有Eclipse胎挎、JBuilder、NetBeans等忆家,不過犹菇,對(duì)于初學(xué)者而言,我還是建議大家先打好基礎(chǔ)芽卿,不要在沒有站穩(wěn)腳跟之前就想著跑步揭芍。

大家可以直接進(jìn)入Oracle的網(wǎng)站下載最新版本的JDK:
http://www.oracle.com/technetwork/java/javase/downloads/

下載的時(shí)候要根據(jù)你的系統(tǒng)選擇32位或64位的,安裝過程比較簡(jiǎn)單卸例,不斷Next就可以了称杨,由于JDK本身是集成了JRE的,所以在安裝的時(shí)候你會(huì)看到有兩個(gè)位置要你確認(rèn)安裝目錄的币厕,按你的習(xí)慣選擇就可以了列另。例如,我選擇了C:\Program Files\Java這個(gè)路徑旦装,安裝完成后共看到兩個(gè)文件夾(具體名稱跟你選擇的版本有關(guān)):

Paste_Image.png

細(xì)心的你可能會(huì)發(fā)現(xiàn)页衙,在jdk1.8.0_51下面也有一個(gè)jre目錄,并且里面的內(nèi)容居然跟jre1.8.0_51是一模一樣的阴绢,為什么要安裝兩次店乐,這不是多此一舉嗎?要知道老子的硬盤資源可是很寶貴的(你懂的)呻袭。其實(shí)眨八,這兩個(gè)jre是各自有分工的,如果你再細(xì)心一點(diǎn)左电,會(huì)看到j(luò)dk1.8.0_51目錄下的那個(gè)jre跟jre1.8.0_51并非完全一樣的廉侧,前者占用的硬盤空間會(huì)更大些,因?yàn)閖dk1.8.0_51目錄下的jre是供開發(fā)者使用的篓足,所以還包含了一些專門針對(duì)開發(fā)的jar文件段誊,而外部的jre1.8.0_51則是供其他程序使用的,例如IE瀏覽器栈拖。之所以這樣劃分连舍,是為了避免開發(fā)者的工作不至于影響其他程序的正常工作(例如服務(wù)器可能要調(diào)用外部那個(gè)JRE),兩個(gè)JRE是獨(dú)立運(yùn)行的涩哟。

下面索赏,我們就用最原始的方法來寫一個(gè)最簡(jiǎn)單的Java程序盼玄,我們使用的代碼編寫工具就是Windows自帶的記事本,夠原始了吧潜腻。

我們先在D盤新建一個(gè)JavaTest的目錄用來存放我們的代碼埃儿,在記事本中敲入以下代碼,然后保存為Clock.java

Paste_Image.png

編寫完代碼之后砾赔,我們需要對(duì)代碼進(jìn)行編譯蝌箍,我們需要用到的編譯器就是位于jdk1.8.0_51\bin目錄下的javac.exe,這是一個(gè)Dos程序暴心,因此我們需要進(jìn)入Dos界面來運(yùn)行妓盲。我們直接在命令行輸入javac,可以看到如下的提示:

Paste_Image.png

上面的第一行“用法”已經(jīng)告訴了我們?nèi)绾问褂眠@個(gè)命令专普,中間是可選的選項(xiàng)悯衬,最后是源文件路徑,我們?cè)贒os中輸入以下命令:

javac -d D:\JavaTest D:\JavaTest\Clock.java

javac后面的-d選項(xiàng)表示我們輸出的目錄是D:\JavaTest檀夹,要編譯的源文件是D:\JavaTest\Clock.java筋粗。執(zhí)行完之后,你可以在D:\JavaTest找到Clock.class炸渡,這就是編譯后的字節(jié)碼文件娜亿。

接下來,我們要運(yùn)行這個(gè)字節(jié)碼文件蚌堵。由于字節(jié)碼文件要在虛擬機(jī)里面運(yùn)行买决,我們?cè)趈dk1.8.0_51\bin目錄下看到有一個(gè)名稱為java.exe的文件,同樣吼畏,這個(gè)也是一個(gè)Dos命令督赤,通過執(zhí)行這個(gè)命令,我們可以啟動(dòng)虛擬機(jī)并執(zhí)行我們的程序泻蚊。同樣方法躲舌,我們看一下這個(gè)命令的用法:

Paste_Image.png

參照第一行“用法”的提示已亥,我們輸入以下命令:

Paste_Image.png

這個(gè)命令當(dāng)中当犯,-classpath選項(xiàng)指示java在哪里查找類横媚,然后跟著“類名稱”卤材。可以看到屏幕中輸出了“Hello Kitty”的字樣菜枷,這是我們的程序當(dāng)中System.out.println("Hello Kitty");運(yùn)行的結(jié)果躬厌。我們回過頭來看一下我們的代碼:

public class Clock {
    public static void main(String[] args){
        System.out.println("Hello Kitty");
    }
}

根據(jù)上一章我們介紹的內(nèi)容牙甫,我們看到在Clock類當(dāng)中定義了一個(gè)public的方法滩褥,方法名稱為main,后面跟著一個(gè)參數(shù)(String[] args)炫加,這個(gè)方法的返回值是void瑰煎,也就是沒有返回值铺然。另外,還有一個(gè)static酒甸,這個(gè)static是靜態(tài)的意思魄健,我們稱這個(gè)為靜態(tài)方法,我們后面還會(huì)詳細(xì)講述這個(gè)東西插勤。在這里沽瘦,我們需要記住的是,這個(gè)main是比較特殊的一個(gè)方法农尖,我們稱之為“入口函數(shù)”析恋,也就是說,java在執(zhí)行類的時(shí)候盛卡,首先會(huì)去找這個(gè)函數(shù)助隧,然后再根據(jù)這個(gè)函數(shù)逐步調(diào)用其他方法,最終完成程序的執(zhí)行滑沧。每一個(gè)程序都至少有一個(gè)main方法(如果有多個(gè)main方法則需要在執(zhí)行的時(shí)候指定那個(gè)是主方法)并村,否則程序?qū)o(wú)法啟動(dòng)。

上面我們使用了最原始的方法來編譯及運(yùn)行程序滓技,效率確實(shí)非常低哩牍,下面,我們稍微改進(jìn)一下令漂,以便后面在練習(xí)的時(shí)候可以更加方便膝昆。

首先,我們?nèi)ハ螺d一個(gè)更友好的小型編輯器EditPlus洗显,這個(gè)編輯器比較小外潜,不過有語(yǔ)法高亮、括號(hào)匹配等功能挠唆,關(guān)鍵是我們可以直接調(diào)用javac处窥、java等命令,不用再每一次都通過敲命令行的方式來編譯和運(yùn)行玄组。
我們使用EditPlus來打開剛才的代碼:

Paste_Image.png

可以看到Java保留字以及常用的類都進(jìn)行了高亮顯示滔驾,并且我們點(diǎn)擊大括號(hào)會(huì)自動(dòng)高亮顯示與之匹配的大括號(hào)。下面俄讹,我們需要將javac哆致、java這兩個(gè)命令設(shè)置到這個(gè)工具中。

點(diǎn)擊“工具”-“配置自定義工具”患膛,點(diǎn)擊“組名”將默認(rèn)的“工具組1”命名為“Java工具”摊阀,然后點(diǎn)擊“添加工具”,選擇“程序”。我們可以對(duì)照之前我們執(zhí)行javac的語(yǔ)法:

javac -d D:\JavaTest D:\JavaTest\Clock.java

然后在各欄填寫信息如下:

命令:C:\Program Files\Java\jdk1.8.0_51\bin\javac.exe
參數(shù):-d D:\JavaTest $(FilePath) 后面的$(FilePath)是文件路徑
起始目錄:C:\Program Files\Java\jdk1.8.0_51\bin

Paste_Image.png

點(diǎn)擊“應(yīng)用”胞此,我們就完成了javac命令的集成臣咖。接著,我們添加“java”命令漱牵,同理夺蛇,對(duì)照之前的命令:
java -classpath D:\JavaTest Clock
各項(xiàng)設(shè)置如下:

Paste_Image.png

我們用EditPlus打開Clock.java,點(diǎn)擊“工具”下的“javac”酣胀,然后我們就可以看到D:\JavaTest多了一個(gè)Clock.class刁赦。點(diǎn)擊“工具”下的“java”,就可以看到以下輸出:

Paste_Image.png

下面我們稍微改動(dòng)一下代碼闻镶,在代碼的最上方增加一行:

package test.code1;

我們?cè)賵?zhí)行javac甚脉,可以看到,原來的目錄下多了一個(gè)test目錄

Paste_Image.png

將其打開儒溉,可以看到code1目錄宦焦,在code1目錄下可以扎到Clock.class字節(jié)碼文件。現(xiàn)在顿涣,我們先刪掉D:\JavaTest目錄下的Clock.class文件波闹,然后運(yùn)行“工具”下面的“java”,問題來了涛碑,提示“錯(cuò)誤: 找不到或無(wú)法加載主類 Clock”精堕。原因是我們的java命令此時(shí)其實(shí)是變成這樣子:

java -classpath D:\JavaTest Clock

由于我們的Clock路徑已經(jīng)改變,所以會(huì)出現(xiàn)找不到類的情況蒲障,那應(yīng)該怎么寫呢歹篓?我可以告訴大家,正確的寫法應(yīng)該是:

java -classpath D:\JavaTest test.code1.Clock

可以看到揉阎,這里我們?cè)陬惷Q之前加了包的路徑庄撮,這樣子java就知道我們的這個(gè)類其實(shí)是位于D:\JavaTest\test\code1目錄下。其中“test.code1.Clock”我們可以將其稱為一個(gè)“完整的類名”毙籽。那EditPlus當(dāng)中有沒有辦法能夠?qū)崿F(xiàn)這個(gè)命令呢洞斯?方法是有的,我們只需稍微改動(dòng)以下:

Paste_Image.png

我們將“參數(shù)”部分修改以下坑赡,其中最后面我們不是跟類名烙如,而是需要我們?cè)谶\(yùn)行的時(shí)候輸入“類的完整路徑”,運(yùn)行的時(shí)候會(huì)彈出以下提示框:

Paste_Image.png

我們輸入類名點(diǎn)擊“確定”就可以運(yùn)行毅否。

需要提示一下的是亚铁,很多書籍或者網(wǎng)絡(luò)的文章都會(huì)教大家通過修改環(huán)境變量的方式來簡(jiǎn)化javac以及java命令的使用,從而可以在任意目錄下執(zhí)行這兩個(gè)命令螟加,不過我個(gè)人是不太建議這種做法的徘溢,畢竟那是操作系統(tǒng)本身的事情吞琐,Java作為一個(gè)獨(dú)立的第三方程序沒有必要去干涉人家的內(nèi)政,守好自己的一畝三分地就可以了然爆。更重要的是顽分,當(dāng)我們?cè)谶M(jìn)行真正的開發(fā)時(shí),一般的開發(fā)工具都已經(jīng)集成了JRE施蜜,我們幾乎可以進(jìn)行傻瓜式的開發(fā)。

[原創(chuàng)作品雌隅,未經(jīng)授權(quán)請(qǐng)勿轉(zhuǎn)載]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末翻默,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子恰起,更是在濱河造成了極大的恐慌修械,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,464評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件检盼,死亡現(xiàn)場(chǎng)離奇詭異肯污,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)吨枉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門蹦渣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人貌亭,你說我怎么就攤上這事柬唯。” “怎么了圃庭?”我有些...
    開封第一講書人閱讀 169,078評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵锄奢,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我剧腻,道長(zhǎng)拘央,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,979評(píng)論 1 299
  • 正文 為了忘掉前任书在,我火速辦了婚禮灰伟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蕊温。我一直安慰自己袱箱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評(píng)論 6 398
  • 文/花漫 我一把揭開白布义矛。 她就那樣靜靜地躺著发笔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪凉翻。 梳的紋絲不亂的頭發(fā)上了讨,一...
    開封第一講書人閱讀 52,584評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼前计。 笑死胞谭,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的男杈。 我是一名探鬼主播丈屹,決...
    沈念sama閱讀 41,085評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼伶棒!你這毒婦竟也來了旺垒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,023評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤肤无,失蹤者是張志新(化名)和其女友劉穎先蒋,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宛渐,經(jīng)...
    沈念sama閱讀 46,555評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡竞漾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窥翩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片业岁。...
    茶點(diǎn)故事閱讀 40,769評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖寇蚊,靈堂內(nèi)的尸體忽然破棺而出叨襟,到底是詐尸還是另有隱情,我是刑警寧澤幔荒,帶...
    沈念sama閱讀 36,439評(píng)論 5 351
  • 正文 年R本政府宣布糊闽,位于F島的核電站,受9級(jí)特大地震影響爹梁,放射性物質(zhì)發(fā)生泄漏右犹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評(píng)論 3 335
  • 文/蒙蒙 一姚垃、第九天 我趴在偏房一處隱蔽的房頂上張望念链。 院中可真熱鬧,春花似錦积糯、人聲如沸掂墓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)君编。三九已至,卻和暖如春川慌,著一層夾襖步出監(jiān)牢的瞬間吃嘿,已是汗流浹背祠乃。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兑燥,地道東北人亮瓷。 一個(gè)月前我還...
    沈念sama閱讀 49,191評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像降瞳,于是被迫代替她去往敵國(guó)和親嘱支。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法挣饥,類相關(guān)的語(yǔ)法斗塘,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法亮靴,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 31,665評(píng)論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理于置,服務(wù)發(fā)現(xiàn)茧吊,斷路器,智...
    卡卡羅2017閱讀 134,714評(píng)論 18 139
  • 小編費(fèi)力收集:給你想要的面試集合 1.C++或Java中的異常處理機(jī)制的簡(jiǎn)單原理和應(yīng)用八毯。 當(dāng)JAVA程序違反了JA...
    八爺君閱讀 4,599評(píng)論 1 114
  • 今天說什么神話乳讥,明天傳什么佳話,最后我們看到的往往是笑話廓俭。 對(duì)于往事云石,總要在記憶中清空一些。你說是背叛研乒,我說是減負(fù)...
    白發(fā)老蘭閱讀 1,011評(píng)論 6 34
  • 我認(rèn)識(shí)Y先生的時(shí)候汹忠,他正甩開了膀子跟一堆人罵仗。以一敵百雹熬,文武皆用宽菜,我先是在心里嫌棄了他三分。不管現(xiàn)實(shí)生活里還是虛...
    四小姐的家閱讀 952評(píng)論 1 1