咱們上文書說到,咱們首先安裝Java,而後設置Java環境,而後編譯運行了一個簡單的Java程序,在命令行模式下顯示了一個「Hello baby」。那麼,爲何呢?發生了什麼呢?java
首先,下載安裝Java就不用問爲何了對吧?所謂巧婦難爲無米之炊,沒有Java卻想用,這不可能的。eclipse
其次,爲何咱們要那樣設置Java的運行環境呢? 由於,目前爲止,我只是想在命令行下編譯運行java程序,這樣一來,你就須要讓命令行模式識別java的命令。而命令行下能自動識別的命令,必須咱們手動的把命令的路徑添加進去。也許你會說,也不是啊,好比cd啊, dir啊這些簡單的命令行命令,咱們也沒有手動添加過啊,是啊,那是系統自動添加的。如今你要用你本身的命令,那你就要本身添加了。工具
也許,你會問,你說在目前爲止,用命令行,什麼意思?難道之後能夠不用?是的,若是你想編譯運行java程序,你確實必須安裝java,可是不必定非要設置java的運行環境,java的運行環境,與其說是java的運行環境,還不如說是爲了能在命令行下運行java而不得不進行的設置。若是你想編譯運行java程序,安裝完java之後,其實你可使用其餘的編譯工具進行編寫運行java程序,好比,著名的eclipse,這咱們之後會講到。命令行
好了,我想你應該明白爲何咱們要安裝java了,也明白咱們爲何要設置環境了。可是其實還不見得特別明白,接下來,咱們解釋一下在命令行下編譯運行java程序的方法:對象
先看javac Test.java,這是幹什麼呢?這是編譯名爲Test.java的文件,也就是咱們編寫的java程序源文件。javac是命令,意思是「編譯java程序」的意思。Test.java, 這是命令做用的對象。就是說,編譯名爲Test.java的java源文件。當你寫的程序代碼沒有語法錯誤(但也許有邏輯錯誤)的時候,將會經過編譯,經過編譯之後會怎麼樣呢?若是僅從命令行的顯示來看,彷佛什麼也沒發生。可是實際上,若是你回到源文件所在的位置去看一下,你會發現,那裏多了一個與源文件同名,可是後綴名爲class的文件,拿咱們的例子來講,就是Test.class,這個東西是什麼呢? 這就是你編譯經過的結果,當你編譯經過,java就會自動生成一個與源文件同名,但後綴名爲class的文件。有了這個文件,咱們纔可能運行java程序。怎麼運行呢?blog
而後咱們看java Test,這是幹什麼呢?這就是運行java程序,java是運行java程序的命令,Test是程序名稱。爲何不是Test.java呢?由於java沒有運行Test.java, java運行的實際上是Test.class那個文件,可是,不寫後綴名。若是不信的話,當你編譯經過,並生成了class文件之後,你徹底能夠把源文件刪除,而後使用 java 文件名 的格式來運行程序,徹底能夠的。在咱們的例子中,就是,在編譯經過而且生成了Test.class文件之後,刪除D盤的Test.java,而後在命令行下,D盤根目錄下,打入java Test,就能夠運行了。ip
那麼class文件是個什麼文件呢?它是java能夠直接讀取並直接執行的文件,你非要用記事本打開的話也行,裏面是亂碼,爲何呢?由於那根本就是給java讀的,不是給你讀的,你看不懂正常,並且你那記事本打開的,應該也不是其原本面目。it
可是,咱們通常是不刪除源文件的,爲何不刪除呢?你刪它幹啥啊?你不看你的代碼了啊?你不看你老師還看呢,要不你哪兒來分啊?你不看你客戶還看呢。並且萬一你想改程序呢?你能直接改class文件嗎?不能。因此。。。依我這個初學者的愚見,您仍是留着源文件吧。編譯
好了,那麼如今咱們總結一下java在命令行下是如何運行程序的,首先,前提是你安裝了java,而且設置好了java的運行環境,而後,你有一個java的源程序。這樣,使用以下的格式使用命令: 命令名 命令做用對象。使用javac來編譯文件,而後使用java來運行程序。class