成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Java千問:開發(fā)Java程序?yàn)槭裁匆渲铆h(huán)境變量?

我們?cè)趯W(xué)習(xí)搭建Java開發(fā)環(huán)境的時(shí)候,老師總是讓我們先安裝JDK,緊接著又讓我們?nèi)ヅ渲铆h(huán)境變量,之后才能動(dòng)手編寫Java程序。很多同學(xué)按照老師的步驟去做,成功的搭建好了Java開發(fā)環(huán)境,并且運(yùn)行出了自己的第一個(gè)Java程序,感到非常有成就感。

丹徒網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

那么,為什么在安裝了JDK之后要配置環(huán)境變量呢?很多同學(xué)對(duì)這個(gè)問題其實(shí)并不清楚,只是知道如果不配置環(huán)境變量,就沒法進(jìn)行Java開發(fā)。今天,咱們就來聊聊為什么要配置環(huán)境變量。其實(shí),配置環(huán)境變量的目的很簡單:為了在命令行窗口下編譯和運(yùn)行Java程序。大家請(qǐng)注意:這句話說明了配置環(huán)境變量的作用,但是還附加了一個(gè)前提,那就是“在命令行窗口下”。這到底是怎么回事呢?我們慢慢道來。

一、配置環(huán)境變量與編譯Java程序的關(guān)系
我們知道,程序員所寫的Java程序,都是保存在一個(gè)后綴名為.java的文件當(dāng)中的,這個(gè)文件稱之為源文件。源文件并不能被執(zhí)行,它需要首先被編譯成二進(jìn)制字節(jié)碼文件,也就是后綴名為.class的文件。那么怎樣把源文件編譯成二進(jìn)制字節(jié)碼文件呢?這時(shí)候就需要用到JDK當(dāng)中提供的編譯程序來完成這個(gè)任務(wù)。編譯程序是一個(gè)后綴為.exe的可執(zhí)行文件,名字叫做javac,它存在于JDK安裝路徑下的bin文件夾中。但是,我們的源文件文件有可能會(huì)被保存到磁盤上任何一個(gè)文件夾中。當(dāng)我們?cè)谠次募诘奈募A中去調(diào)用javac編譯程序,系統(tǒng)會(huì)發(fā)現(xiàn)根本就找不到這個(gè)它,因?yàn)樽止?jié)碼文件與編譯程序根本不在同一個(gè)文件夾,除非是一種很特殊的情況,那就是把源文件放到j(luò)avac編譯程序所在的文件夾中去編譯。否則都會(huì)出現(xiàn)下圖這樣的錯(cuò)誤
Java千問:開發(fā)Java程序?yàn)槭裁匆渲铆h(huán)境變量?
為了能夠在任何文件夾下都調(diào)用到j(luò)avac編譯程序,就必須讓系統(tǒng)在任何地方都能找到j(luò)avac編譯程序,該怎么辦呢?解決辦法很簡單:配置環(huán)境變量!我們要在Path這個(gè)環(huán)境變量當(dāng)中把javac編譯程序所在的位置添加進(jìn)去!我們都知道javac編譯程序位于JDK安裝路徑下的bin文件夾中,所以我們都就要把bin這個(gè)路徑添加到環(huán)境變量當(dāng)中。這樣,無論源文件在哪里,操作系統(tǒng)都隨時(shí)能找到j(luò)avac編譯程序并對(duì)其進(jìn)行編譯。當(dāng)然了,經(jīng)過這樣的配置之后,bin文件夾下其他的可執(zhí)行文件也能夠在任何目錄下被調(diào)用,其中就包括執(zhí)行Java程序的java.exe。

二、配置環(huán)境變量與執(zhí)行Java程序的關(guān)系
當(dāng)我們已經(jīng)能夠把Java源程序編譯成.class文件之后,下一步要做的就是執(zhí)行Java程序。執(zhí)行Java程序其實(shí)是個(gè)很復(fù)雜的過程,需要把.class文件讀入到虛擬機(jī)的內(nèi)存當(dāng)中,然后轉(zhuǎn)換成機(jī)器語言并解釋執(zhí)行。在這里我們不去細(xì)說這個(gè)復(fù)雜的過程,我們重點(diǎn)來說配置環(huán)境變量和執(zhí)行Java程序有什么關(guān)系。
要想執(zhí)行Java程序,必不可少的一步就是先找到.class文件,所以必須讓虛擬機(jī)知道.class文件的位置。虛擬機(jī)是怎樣知道.class文件的位置呢?它要根據(jù)CLASSPATH環(huán)境變量去找。我們?cè)贑LASSPATH環(huán)境變量當(dāng)中首先會(huì)添加”.”(一個(gè)英文的點(diǎn)號(hào)),這個(gè)”.”就表示當(dāng)前路徑。配置了”.”之后,虛擬機(jī)在尋找.class文件的時(shí)候會(huì)在當(dāng)前路徑下進(jìn)行搜索。
在CLASSPATH環(huán)境變量當(dāng)中配置了”.”之后,我們通常還會(huì)把JDK安裝路徑下的lib文件夾下的dt.jar和tools.jar這兩個(gè)文件的位置也加入到CLASSPATH環(huán)境變量中,這又是為什么呢?就是因?yàn)檫@兩個(gè)jar文件是JDK是提供給我們的兩個(gè)基礎(chǔ)類庫。dt.jar是關(guān)于運(yùn)行環(huán)境的類庫,而tools.jar是工具類庫。關(guān)于這兩個(gè)類庫當(dāng)中究竟包含了哪些運(yùn)行Java程序必須的類,在這里我們就不細(xì)說了,大家只要記?。簺]有這兩個(gè)類庫支持,很多Java程序壓根就無法運(yùn)行,所以我們?cè)谂渲铆h(huán)境變量的時(shí)候,要把它們的路徑也加入到CLASSPATH當(dāng)中,以確保程序能夠正確的調(diào)用到基礎(chǔ)類庫中的類。
注意!歷史在JDK1.5發(fā)布的那一天發(fā)生了轉(zhuǎn)變!從JDK1.5開始,Java運(yùn)行時(shí)環(huán)境(JRE)有了自動(dòng)搜索當(dāng)前文件夾下.class文件,并自動(dòng)加載dt.jar和tools.jar類庫文件的功能,所以,從JDK1.5開始,可以不用配置CLASSPATH環(huán)境變量了!

三、那個(gè)JAVA_HOME是怎么回事
我們?cè)谂渲铆h(huán)境變量的時(shí)候,往往還會(huì)配置一個(gè)叫做JAVA_HOME的環(huán)境變量。這又是怎么回事呢?首先說明JAVA_HOME環(huán)境變量當(dāng)中配置的是JDK的安裝路徑,并且我們會(huì)在配置Path和CLASSPATH的時(shí)候,用%JAVA_HOME%去代替這兩個(gè)環(huán)境變量中的JDK安裝路徑。這么做有兩個(gè)好處:
首先,當(dāng)我們重新安裝了JDK或者是JDK升級(jí)之后,JDK的安裝路徑都會(huì)發(fā)生變化。在這種情況下,如果我們配置了JAVA_HOME環(huán)境變量,我們就可以只修改JAVA_HOME當(dāng)中JDK的安裝路徑,而Path和CLASSPATH中涉及到的JDK的安裝路徑因?yàn)橛?JAVA_HOME%代替了,所以不需要做任何修改,這樣就減少了工作量和出錯(cuò)的概率。
其次,某些集成開發(fā)環(huán)境(IDE)和Java Web服務(wù)器會(huì)以JAVA_HOME環(huán)境變量的值去尋找JDK的安裝路徑。所以,如果我們希望在實(shí)際開過程中減少遇到莫名其妙問題的概率,應(yīng)該添加一個(gè)JAVA_HOME環(huán)境變量,并且在Path和CLASSPATH中用%JAVA_HOME%去代替JDK安裝的路徑。

四、為什么說環(huán)境變量是為了 “在命令行窗口下”編譯和運(yùn)行Java程序而配置
我們?cè)谖恼乱婚_始說:配置環(huán)境變量是為了在命令行窗口下編譯和運(yùn)行Java程序,這句話中特意強(qiáng)調(diào)了“在命令行窗口下”這個(gè)前提,這又是為什么呢?其實(shí),時(shí)至今日,很多IDE不需要配置環(huán)境變量,也能正確編譯和運(yùn)行Java程序。我們只需要在IDE當(dāng)中相關(guān)的配置菜單下,正確的指定出JDK的安裝路徑就可以了。除非這個(gè)IDE本身也是用Java編寫的。因此,如果學(xué)習(xí)Java語言的時(shí)候,直接就使用像IntelliJ IDEA這樣的IDE,不去配置環(huán)境變量也能正確編譯和運(yùn)行Java程序。但是,如果回到最原始的“命令行窗口”模式下,為了能夠在任何目錄下都能調(diào)用到j(luò)avac和java這兩個(gè)exe文件,我們必須要配置環(huán)境變量。所以在解釋配置環(huán)境變量作用的時(shí)候,我們特意強(qiáng)調(diào)了“在命令行窗口下”這個(gè)前提。

如想系統(tǒng)學(xué)習(xí)Java編程,點(diǎn)擊穆哥學(xué)堂即可,有問題也可以加入我的QQ群291839907一起討論!

文章標(biāo)題:Java千問:開發(fā)Java程序?yàn)槭裁匆渲铆h(huán)境變量?
網(wǎng)站路徑:http://jinyejixie.com/article14/jpodge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、虛擬主機(jī)網(wǎng)站策劃、搜索引擎優(yōu)化商城網(wǎng)站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
贵定县| 枣强县| 蒙自县| 蕉岭县| 林州市| 镇江市| 尉犁县| 滨海县| 屯门区| 博兴县| 平泉县| 鹤山市| 朔州市| 铜山县| 喜德县| 新绛县| 九龙坡区| 西林县| 皋兰县| 通化县| 寿宁县| 温泉县| 汉沽区| 梅河口市| 通山县| 武穴市| 福泉市| 拉萨市| 仁布县| 平顶山市| 遵义县| 年辖:市辖区| 汕尾市| 漳浦县| 桦川县| 南和县| 盐亭县| 夏邑县| 额尔古纳市| 南通市| 深水埗区|