官术网_书友最值得收藏!

2.3 編譯并運(yùn)行Java程序

經(jīng)過(guò)前面的講解,相信大家對(duì)Java程序已經(jīng)有了大致的了解。本節(jié)將詳細(xì)講解如何編譯并運(yùn)行Java程序。

知識(shí)點(diǎn)講解:

2.3.1 編譯Java程序

在運(yùn)行Java程序之前,我們首先要將它的代碼編譯成可執(zhí)行的程序,為此,我們需要用到j(luò)avac命令。由于我們?cè)谇懊嬉呀?jīng)把javac命令所在的路徑添加到了系統(tǒng)的PATH環(huán)境變量中,因此現(xiàn)在可以直接調(diào)用javac命令來(lái)編譯Java程序了。另外,如果直接在命令行終端中輸入javac命令,其后不跟任何選項(xiàng)和參數(shù)的話,它會(huì)輸出大量與javac命令相關(guān)的幫助信息,讀者在使用javac命令時(shí)可以參考這些幫助信息。在這里,我們建議初學(xué)者掌握javac命令的如下用法。

        javac -d destdir srcFile

在上述命令中,-d是javac命令的選項(xiàng),功能是指定編譯生成的字節(jié)碼文件的存放路徑(即destdir)。在這里,destdir必須是本地磁盤上的一條合法有效路徑。而srcFile則表示的是Java源文件所在的路徑,該路徑既可是絕對(duì)路徑,也可以是相對(duì)路徑。通常,我們總是會(huì)將生成的字節(jié)碼文件放在當(dāng)前路徑下,當(dāng)前路徑可以用點(diǎn)“.”來(lái)表示。因此,如果以之前的first.java為例,我們可以首先進(jìn)入它所在的路徑,然后輸入如下編譯命令。

        javac -d . first.java

假設(shè)first.java所在的路徑為“C:\Users\apple”,則整個(gè)編譯過(guò)程在CMD窗口中的效果如圖2-17所示。運(yùn)行上述命令后,會(huì)在該路徑下生成一個(gè)編譯后的文件first.class,如圖2-18所示。

圖2-17 CMD窗口中的編譯過(guò)程

圖2-18 生成first.class文件

2.3.2 運(yùn)行Java程序

待完成編譯之后,我們就需要用到j(luò)ava命令來(lái)運(yùn)行程序了。關(guān)于該命令,我們同樣可以通過(guò)在命令行終端中直接輸入不帶任何參數(shù)或選項(xiàng)的java命令來(lái)獲得其幫助信息。在這里,我們需要用到的java命令的格式如下所示。

        java <main_class_name>//<main_class_name>表示Java程序中的類名

請(qǐng)一定要注意,java命令后的參數(shù)應(yīng)是Java程序的主類名(即main()方法所在的類),它既不是字節(jié)碼文件的文件名,也不是Java源文件名。例如,我們可以在命令行終端中進(jìn)入first.class所在的路徑,輸入如下命令。

        java first

上述命令會(huì)輸出如下結(jié)果。

        第一段Java程序!

在控制臺(tái)中,完整的編譯和運(yùn)行結(jié)果如圖2-19所示。

圖2-19 控制臺(tái)中完整的編譯和運(yùn)行結(jié)果

另外需要提醒的是,初學(xué)者經(jīng)常容易忘記Java是一門區(qū)分大小寫的語(yǔ)言,例如在下面的命令中,我們錯(cuò)誤地將first寫成了First,這會(huì)造成命令執(zhí)行失敗或異常。

        java First

2.3.3 Java 11新特性:新的程序運(yùn)行方式

從Java 11開(kāi)始新增了一個(gè)特性:?jiǎn)?dòng)單一文件的源代碼程序。單一文件程序是指整個(gè)程序只有一個(gè)源碼文件。這時(shí)在控制臺(tái)中使用如下格式即可運(yùn)行Java文件,從而省掉了編譯環(huán)節(jié)。

        java Java文件名

以上面的Java文件first.java為例,在運(yùn)行之前先不編譯它,而是希望Java啟動(dòng)器能直接運(yùn)行文件first.java。此時(shí)只需要將控制臺(tái)命令放到程序目錄中,然后運(yùn)行如下命令即可。

        java first.java

假設(shè)文件first.java位于本地計(jì)算機(jī)的“H:\eclipse-workspace\qiantao\src”目錄下,則上述直接運(yùn)行方式在控制臺(tái)中的完整過(guò)程如下。

主站蜘蛛池模板: 曲阜市| 屏东市| 绥化市| 祁阳县| 沙湾县| 汨罗市| 花莲县| 通州市| 壶关县| 扶绥县| 固原市| 交口县| 封丘县| 图木舒克市| 岫岩| 读书| 鸡东县| 炉霍县| 荔波县| 聂拉木县| 太谷县| 鄂托克前旗| 乌拉特后旗| 安乡县| 靖西县| 平果县| 乌鲁木齐市| 澜沧| 丹东市| 墨脱县| 新余市| 新密市| 开远市| 永康市| 石棉县| 宁津县| 江阴市| 乌兰县| 林口县| 洞口县| 卢龙县|