一、編寫并執(zhí)行程序
(一)建立java文件并編寫代碼
1 如果是在Win系統(tǒng)下摹闽,可在某個(gè)路徑股耽,比如桌面根盒,用記事本建立一個(gè)Hello.txt文件,再將后綴名改為.java物蝙,即Hello.java炎滞。
2 如果是在Mac系統(tǒng)下,可在某個(gè)路徑诬乞,比如桌面册赛,新建一個(gè)“文本編輯”文件并保存成Hello,沒有后綴名震嫉。因?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)對于Mac系統(tǒng),一定要先把文件名由Hello(實(shí)際上是Hello.rtf)改為Hello.java蝇完,再在Hello.java里編寫代碼官硝。
若是直接在Hello.rtf中編寫代碼,寫完再將文件名改為Hello.java短蜕,會看到Hello.java中都是一些亂碼氢架,這跟rtf的編碼格式有關(guān)系。
(3)對于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 路徑下
(三)打開命令行窗口扇雕,進(jìn)入到“桌面”路徑拓售,并且用javac.exe來執(zhí)行Hello.java文件
執(zhí)行完之后,可看到桌面生成了Hello.class文件
注意:
(1)因?yàn)镻rogram Files中間帶了一個(gè)空格镶奉,所以上面javac所有的路徑要用雙引號包起來
(2)javac等價(jià)于javac.exe础淤。后綴名.exe可以省略掉。即上面的命令等價(jià)于
"C:\Program Files\Java\jdk1.7.0_80\bin\javac.exe" Hello.java
(四)用java.exe來執(zhí)行Hello.class文件哨苛,
注意鸽凶,不需要把.class寫出來,寫成Hello就可以了建峭。
這里顯示出程序的運(yùn)行結(jié)果“Hello World!”
二玻侥、Java程序的編譯過程
(一)編譯過程
.java后綴的是源代碼,一個(gè)或者多個(gè)源代碼要經(jīng)過java編譯器生產(chǎn).class后綴的字節(jié)碼亿蒸。字節(jié)碼是和平臺無關(guān)的使碾,和C語言編譯生成平臺相關(guān)的機(jī)器碼是不一樣的。機(jī)器碼只能在對應(yīng)的系統(tǒng)平臺執(zhí)行祝懂,字節(jié)碼執(zhí)行是系統(tǒng)平臺無關(guān)的,但是必須有解釋器拘鞋。
(二)執(zhí)行過程
和編譯型語言(比如C/C++)程序最大的不同是JAVA程序經(jīng)過解釋器轉(zhuǎn)換為和平臺相關(guān)的機(jī)器碼才可執(zhí)行砚蓬,可見這個(gè)過程在執(zhí)行過程中動態(tài)解釋,而編譯型語言(比如C)是在執(zhí)行之前就編譯成了和平臺相關(guān)的機(jī)器碼了盆色。這也是JAVA語言可以“一次(偽)編譯灰蛙,到處運(yùn)行”的重要原因祟剔。
三、設(shè)置環(huán)境變量
上面使用javac.exe或java.exe時(shí)摩梧,需要帶上全路徑物延,很不方便。
有沒有辦法在任何目錄下仅父,直接使用javac.exe或java.exe叛薯,而不需要輸入全路徑徑呢?
有的笙纤。這就需要設(shè)置系統(tǒng)的環(huán)境變量耗溜。所謂環(huán)境變量,可以理解成整個(gè)系統(tǒng)的全局變量省容,無論你在哪個(gè)路徑下抖拴,都可以使用。
(一)Win 7下設(shè)置環(huán)境變量
1 右鍵點(diǎn)擊“計(jì)算機(jī)”-->“屬性”-->“高級”-->“高級系統(tǒng)設(shè)置”
2 在系統(tǒng)變量中腥椒,添加JAVA_HOME阿宅,值為“C:\Program Files\Java\jdk1.7.0_80”
3 編輯Path變量,在最后面添加上“; %JAVA_HOME%\bin”
4 在命令行窗口中笼蛛,用echo命令查看JAVA_HOME和PATH
可見剛剛設(shè)置的Java相關(guān)的環(huán)境變量沒有生效
5 注銷賬戶或重啟系統(tǒng)洒放,再次用echo命令查看JAVA_HOME和PATH
可見環(huán)境變量設(shè)置成功了。
6 刪除之前生成的Hello.class伐弹,進(jìn)入“桌面”路徑拉馋,執(zhí)行javac Hello.java和java Hello
可見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í)行文件,被安裝到哪了分歇。
可以看到傀蓉,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
這樣看來,PATH路徑并沒有包含/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路徑下。
這說明壕探,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)境變量绅络。
若無法執(zhí)行成功,則需要配置PATH環(huán)境變量嘁字。
配置步驟如下:
1 首先使用echo PATH纯续,不能使用 echo $path
2 設(shè)置環(huán)境變量
(1)進(jìn)入用戶主目錄随珠,查看有沒有.bash_profile這個(gè)文件。
$ cd
$ ls -a
(2)如果沒有這個(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=PATH,這個(gè)句子是將
PATH變量一定要加上拉讯。如果沒寫,會導(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群請掃左側(cè)二維碼,關(guān)注微信公眾號請掃右側(cè)二維碼
QQ群和公眾號.png