小朋友學(xué)Java(3):第一個(gè)Java程序

一、編寫并執(zhí)行程序

(一)建立java文件并編寫代碼

1 如果是在Win系統(tǒng)下,可在某個(gè)路徑,比如桌面,用記事本建立一個(gè)Hello.txt文件,再將后綴名改為.java,即Hello.java。
2 如果是在Mac系統(tǒng)下,可在某個(gè)路徑,比如桌面,新建一個(gè)“文本編輯”文件并保存成Hello,沒(méi)有后綴名。因?yàn)镸ac下后綴名rtf是隱藏的。rtf,全稱Rich Text Format,富文本格式。
再將后綴名改為java,即Hello.java。
3 編寫代碼

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

注意:
(1)文件名稱一定要和類名相同。這里類名為Hello,則文件名必須為Hello.java,而不能是H.java、abc.java。
(2)對(duì)于Mac系統(tǒng),一定要先把文件名由Hello(實(shí)際上是Hello.rtf)改為Hello.java,再在Hello.java里編寫代碼。
若是直接在Hello.rtf中編寫代碼,寫完再將文件名改為Hello.java,會(huì)看到Hello.java中都是一些亂碼,這跟rtf的編碼格式有關(guān)系。
(3)對(duì)于Win系統(tǒng),可以先在Hello.txt中編完代碼,再將Hello.txt重命名為Hello.java。也可以先將Hello.txt重命名為Hello.java,再在Hello.java中編寫代碼。

(二)在jdk的安裝路徑下,查找javac.exe和java.exe所在的路徑

具體位于C:\Program Files\Java\jdk1.7.0_80\bin 路徑下


1.png

(三)打開(kāi)命令行窗口,進(jìn)入到“桌面”路徑,并且用javac.exe來(lái)執(zhí)行Hello.java文件

2.png

執(zhí)行完之后,可看到桌面生成了Hello.class文件

注意:
(1)因?yàn)镻rogram Files中間帶了一個(gè)空格,所以上面javac所有的路徑要用雙引號(hào)包起來(lái)
(2)javac等價(jià)于javac.exe。后綴名.exe可以省略掉。即上面的命令等價(jià)于
"C:\Program Files\Java\jdk1.7.0_80\bin\javac.exe" Hello.java

(四)用java.exe來(lái)執(zhí)行Hello.class文件,

注意,不需要把.class寫出來(lái),寫成Hello就可以了。


3.png

這里顯示出程序的運(yùn)行結(jié)果“Hello World!”

二、Java程序的編譯過(guò)程

(一)編譯過(guò)程

4.png

.java后綴的是源代碼,一個(gè)或者多個(gè)源代碼要經(jīng)過(guò)java編譯器生產(chǎn).class后綴的字節(jié)碼。字節(jié)碼是和平臺(tái)無(wú)關(guān)的,和C語(yǔ)言編譯生成平臺(tái)相關(guān)的機(jī)器碼是不一樣的。機(jī)器碼只能在對(duì)應(yīng)的系統(tǒng)平臺(tái)執(zhí)行,字節(jié)碼執(zhí)行是系統(tǒng)平臺(tái)無(wú)關(guān)的,但是必須有解釋器。

(二)執(zhí)行過(guò)程

5.png

和編譯型語(yǔ)言(比如C/C++)程序最大的不同是JAVA程序經(jīng)過(guò)解釋器轉(zhuǎn)換為和平臺(tái)相關(guān)的機(jī)器碼才可執(zhí)行,可見(jiàn)這個(gè)過(guò)程在執(zhí)行過(guò)程中動(dòng)態(tài)解釋,而編譯型語(yǔ)言(比如C)是在執(zhí)行之前就編譯成了和平臺(tái)相關(guān)的機(jī)器碼了。這也是JAVA語(yǔ)言可以“一次(偽)編譯,到處運(yùn)行”的重要原因。

三、設(shè)置環(huán)境變量

上面使用javac.exe或java.exe時(shí),需要帶上全路徑,很不方便。
有沒(méi)有辦法在任何目錄下,直接使用javac.exe或java.exe,而不需要輸入全路徑徑呢?
有的。這就需要設(shè)置系統(tǒng)的環(huán)境變量。所謂環(huán)境變量,可以理解成整個(gè)系統(tǒng)的全局變量,無(wú)論你在哪個(gè)路徑下,都可以使用。

(一)Win 7下設(shè)置環(huán)境變量

1 右鍵點(diǎn)擊“計(jì)算機(jī)”-->“屬性”-->“高級(jí)”-->“高級(jí)系統(tǒng)設(shè)置”


6.png

2 在系統(tǒng)變量中,添加JAVA_HOME,值為“C:\Program Files\Java\jdk1.7.0_80”


7.png

3 編輯Path變量,在最后面添加上“; %JAVA_HOME%\bin”


8.png

4 在命令行窗口中,用echo命令查看JAVA_HOME和PATH


9.png

可見(jiàn)剛剛設(shè)置的Java相關(guān)的環(huán)境變量沒(méi)有生效

5 注銷賬戶或重啟系統(tǒng),再次用echo命令查看JAVA_HOME和PATH


10.png

可見(jiàn)環(huán)境變量設(shè)置成功了。

6 刪除之前生成的Hello.class,進(jìn)入“桌面”路徑,執(zhí)行javac Hello.java和java Hello


11.png

可見(jiàn)javac和java可以在任何路徑下使用了。

(二)Mac下的環(huán)境變量

先執(zhí)行javac和java命令

$ cd 
$ cd Desktop
$ javac Hello.java
$ java Hello

可以看到,執(zhí)行javac Hello.java后,桌面生成了Hello.class文件。執(zhí)行java Hello后,終端成功打印出“Hello World!”的結(jié)果。

為什么在桌面路徑下,就可以直接使用javac和java命令呢?

(1)首先,咱們看一下javac和java這兩個(gè)可執(zhí)行文件,被安裝到哪了。


12.jpg

可以看到,jdk的安裝路徑為/Library/Java。
可執(zhí)行文件javac和java被安裝到了/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/bin目錄下。

(2)其次,查看PATH變量的值

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

這樣看來(lái),PATH路徑并沒(méi)有包含/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/bin,那為什么在桌面能辨認(rèn)出javac和java這兩個(gè)命令呢?

(3)執(zhí)行whereis javac和whereis java

$ where is javac
/usr/bin/javac
$ where is java
/usr/bin/java

可以看出,javac和java都位于/usr/bin路徑下。
這說(shuō)明,jdk安裝完成之后,/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/bin目錄下的javac和java被另外拷貝了一份到/usr/bin目錄下。
而/usr/bin在PATH中有定義,所以javac和java在任何一個(gè)路徑下,都能直接使用。

(4)結(jié)論:Mac安裝好jdk后,不需要設(shè)置環(huán)境變量,就可以在任意路徑下直接使用javac和java命令。

(三)Unix/Linux下設(shè)置環(huán)境變量

先執(zhí)行javac和java命令

$ cd 
$ cd Desktop
$ javac Hello.java
$ java Hello

若能執(zhí)行成功,不需要配置PATH環(huán)境變量。
若無(wú)法執(zhí)行成功,則需要配置PATH環(huán)境變量。
配置步驟如下:

1 首先使用echo PATH命令來(lái)查看,PATH路徑包含不包含jdk的bin目錄。 注意,windows系統(tǒng)不區(qū)分大小寫。echo %path% 等價(jià)于echo %PATH% 但是Mac/Unix/Linux區(qū)分大小寫,所以這里只能使用 echoPATH,不能使用 echo $path

2 設(shè)置環(huán)境變量
(1)進(jìn)入用戶主目錄,查看有沒(méi)有.bash_profile這個(gè)文件。

$ cd
$ ls -a

(2)如果沒(méi)有這個(gè)文件,用vi創(chuàng)建.bash_profile并輸入下面的內(nèi)容,
如果有這個(gè)文件,用vi將下面的內(nèi)容添加到.bash_profile的最下方

$ vi .bash_profile
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home  
export PATH=$JAVA_HOME/bin:$PATH  

注意:
① 這里的JAVA_HOME要填寫你jdk安裝的實(shí)際路徑,可能跟上面的路徑不太一樣。
② PATH=JAVA_HOME/bin:PATH,這個(gè)句子是將JAVA_HOME/bin添加到PATH變量中。等號(hào)右側(cè)的:PATH變量一定要加上。如果沒(méi)寫,會(huì)導(dǎo)致原先的路徑直接被$JAVA_HOME/bin覆蓋。

(3)用 :wq 退出vi編輯器并保存上面的內(nèi)容

(4)用source .bash_profile命令激活上面修改后的PATH變量

$ source .bash_profile

(5)用echo命令查看JDK的路徑,是否被包含在PATH變量中

$ echo $PATH


加入少兒信息學(xué)奧賽學(xué)習(xí)QQ群請(qǐng)掃左側(cè)二維碼,關(guān)注微信公眾號(hào)請(qǐng)掃右側(cè)二維碼


QQ群和公眾號(hào).png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容