Linux
Linux是主流的服務(wù)器操作系統(tǒng)物咳,廣泛應(yīng)用于互聯(lián)網(wǎng)、云計(jì)算旬昭、智能手機(jī)(Android)等領(lǐng)域篙螟,是開源的,并且免費(fèi)问拘。由于Java主要用于服務(wù)器端的開發(fā)遍略,因此Java應(yīng)用的部署環(huán)境有很多為L(zhǎng)inux惧所。
1.1 Linux目錄結(jié)構(gòu)
Linux操作系統(tǒng)最頂層只有一個(gè)根目錄root,所有文件都存儲(chǔ)在這一個(gè)根目錄之下绪杏。Linux操作系統(tǒng)是在根目錄root下有一個(gè)名叫mnt的子目錄下愈,在這個(gè)目錄下,會(huì)出現(xiàn)一個(gè)目錄蕾久,假設(shè)為sdcard势似,稱之為掛載點(diǎn),對(duì)它的操作就是對(duì)外部設(shè)備的操作僧著。Linux操作系統(tǒng)對(duì)權(quán)限要求比較嚴(yán)格履因,用戶登錄后并非對(duì)所有目錄具有增刪改查權(quán)限,默認(rèn)的當(dāng)前目錄為根目錄下的home目錄下的soft01盹愚,稱之為主目錄栅迄,對(duì)這個(gè)目錄具有最高權(quán)限,其余目錄文件一般都是只讀的杯拐,不能隨意刪除霞篡,這樣就保證了安全性。
Windows操作系統(tǒng)的目錄結(jié)構(gòu)端逼,是以盤符為單位,C盤污淋、D盤顶滩、E盤等等,數(shù)據(jù)存儲(chǔ)在各個(gè)盤符之下寸爆。Windows操作系統(tǒng)若插入一個(gè)外部設(shè)備(U盤等)礁鲁,在系統(tǒng)中是多了一個(gè)盤符H,對(duì)H盤的操作就是對(duì)外部設(shè)備的操作赁豆。Windows操作系統(tǒng)某用戶登錄系統(tǒng)后仅醇,對(duì)所有文件都具有增刪改查的權(quán)限,即:可以操作任意目錄魔种,假設(shè)將C盤下Windows目錄刪除析二,則會(huì)導(dǎo)致系統(tǒng)異常,安全性較差节预。
1.2 pwd叶摄、cd、ls命令
Linux系統(tǒng)是基于命令行的方式進(jìn)行操作安拟,其中經(jīng)常用于操作目錄的命令如下所示:
pwd:用于顯示當(dāng)前工作目錄蛤吓。
ls:用于查看當(dāng)前工作目錄內(nèi)容。
cd:用于改變當(dāng)前工作目錄糠赦。
1.3 相對(duì)路徑和絕對(duì)路徑
在Linux系統(tǒng)中会傲,為指明一個(gè)文件或目錄在文件系統(tǒng)中的位置锅棕,有兩種表示方式:相對(duì)路徑和絕對(duì)路徑。
相對(duì)路徑:文件或目錄相對(duì)于當(dāng)前工作目錄的位置淌山。例如:路徑“soft01/workspace”表示當(dāng)前目錄下的soft01目錄下的workspace裸燎;有兩個(gè)較特殊的相對(duì)路徑:“.”表示當(dāng)前目錄,“..”表示上一級(jí)目錄艾岂。
絕對(duì)路徑:文件或目錄相對(duì)于根目錄的位置顺少,絕對(duì)路徑都從“/”開始。例如:”/home/soft01”王浴,表示根目錄下的home目錄下的soft01脆炎。
1.4 Java編譯運(yùn)行環(huán)境
程序員所編寫的是以.java為后綴的文件,此文件操作系統(tǒng)不能正確識(shí)別氓辣,因此秒裕,首先要經(jīng)過編譯,生成所謂的字節(jié)碼文件(.class)钞啸,而字節(jié)碼文件需要JVM來提供運(yùn)行環(huán)境的支持几蜻。
JVM是一個(gè)軟件,安裝在操作系統(tǒng)中体斩,是建立在操作系統(tǒng)之上的梭稚,為字節(jié)碼文件提供運(yùn)行環(huán)境,如下圖:
Java官方提供了針對(duì)不同平臺(tái)的JVM軟件絮吵,即:不同平臺(tái)的JVM是不同的弧烤。但這些JVM遵循著相同的標(biāo)準(zhǔn),即:只要是標(biāo)準(zhǔn)的.class文件蹬敲,就可以在不同的JVM上運(yùn)行暇昂,而且運(yùn)行的效果相同。這樣伴嗡,就實(shí)現(xiàn)了所謂的“一次編程到處使用”急波。如圖:
Java程序遵循著先編譯、后執(zhí)行的原則瘪校。首先澄暮,通過javac命令將JAVA源程序(.java文件)編譯為JAVA字節(jié)碼(.class文件),而后渣淤,通過java命令啟動(dòng)JVM赏寇,由JVM來加載.class文件并運(yùn)行.class文件。如圖:
1.5 JDK价认、JRE嗅定、JVM關(guān)系
JDK(Java Development Kit)即為Java開發(fā)工具包,包含編寫Java程序所必須的編譯用踩、運(yùn)行等開發(fā)工具以及JRE渠退。開發(fā)工具如:用于編譯java程序的javac命令忙迁、用于啟動(dòng)JVM運(yùn)行java程序的java命令、用于生成文檔的javadoc命令以及用于打包的jar命令等碎乃。
JRE(Java Runtime Environment)即為Java運(yùn)行環(huán)境姊扔,提供了運(yùn)行Java應(yīng)用程序所必須的軟件環(huán)境,包含有Java虛擬機(jī)(JVM)和豐富的系統(tǒng)類庫梅誓。系統(tǒng)類庫即為java提前封裝好的功能類恰梢,只需拿來直接使用即可,可以大大的提高開發(fā)效率梗掰。
JVM(Java Virtual Machines)即為Java虛擬機(jī)嵌言,提供了字節(jié)碼文件(.class)的運(yùn)行環(huán)境支持。
JDK及穗、JRE摧茴、JVM關(guān)系如圖:
JDK中包含了編譯、運(yùn)行等開發(fā)工具及JRE埂陆,而JRE中包含了Java系統(tǒng)類庫及JVM苛白,運(yùn)行一個(gè)java程序所需要的最小環(huán)境即為JRE,而開發(fā)一個(gè)Java程序所需要的最小環(huán)境為JDK焚虱,因?yàn)镴DK中還包含了很多用到的命令购裙。