2.1 JDK環(huán) 境
Java不 僅 提?copy;了 一 個(gè) 豐 富 的 語(yǔ) 言 和 運(yùn) 行 環(huán) 境, 而 且 還提?copy;了 一 個(gè) 免 費(fèi) 的Java開(kāi) 發(fā) 工 具 集(Java Developers Kits, 簡(jiǎn)稱(chēng)JDK)。 編 程 人 員 和 最 終 用 戶(hù) 可 以 利 用 這?copy;工 具 來(lái) 開(kāi) 發(fā)java程序 或 調(diào) 用Java 內(nèi) 容。JDK包 括 以 下 工 具: javac Java語(yǔ) 言 編 譯 器,輸 出 結(jié) 果 為Java字 節(jié) 碼 java Java字 節(jié) 碼 解 釋 器 javap Disassembeler: Java字 節(jié) 碼 分 解 程 序, 本 程 序 返 回Java程 序 的 成 員 變 量 及 方法 等 信 息。 javaprof 資 源 分 析 工 具, 用 于 分 析Java程 序 在 運(yùn) 行過(guò) 程 中 調(diào) 用 了 哪?copy;資 源, 包 括 類(lèi) 和 方 法 的 調(diào) 用 次 數(shù) 和時(shí) 間, 以 及 各 數(shù) 據(jù) 類(lèi) 型 的 內(nèi) 存 使 用 情 況 等。 javah C代 碼 處理 工 具, 用 于 從Java類(lèi) 調(diào) 用C++代 碼 java Applet Viewer 小 應(yīng) 用 程序 瀏 覽 工 具, 用 于 測(cè) 試 并 運(yùn) 行Java小 應(yīng) 用 程 序 java Debugger API Java調(diào) 試 工 具API Prototype Debugger Java調(diào) 試 工 具 原 型
Java開(kāi) 發(fā) 環(huán) 境 還 包 括Java類(lèi) 庫(kù)(包 括I/O類(lèi) 庫(kù)、 用 戶(hù) 界 面 類(lèi) 庫(kù)、網(wǎng) 絡(luò) 類(lèi) 庫(kù) 等)和HotJava WWW 瀏 覽 器。 其 中,HotJava瀏 覽 器 提?copy;了在WWW環(huán) 境 下 運(yùn) 行Java代 碼 的 一 個(gè) 運(yùn) 行 系 統(tǒng), 而 且 還 為WWW開(kāi) 發(fā)人 員 提?copy;了 一 個(gè)Java開(kāi) 發(fā) 框 架。Java解 釋 器 是 面 向 Java程 序的 一 個(gè) 獨(dú) 立 運(yùn) 行 系 統(tǒng), 它 可 以 一 種 穩(wěn) 定、 高 性 能 方 式 運(yùn) 行那?copy;獨(dú) 立 于 平 臺(tái) 的Java字 節(jié) 碼,Java編 譯 器 則 用 于 生 成 這?copy;字節(jié) 碼。
2.1.1 Java程 序 的 編 譯
Java程 序 的 編 譯 程 序 是javac.exe。javac命 令 將Java程 序 編 譯 成字 節(jié) 碼, 然 后 你 可 用java解 釋 器java命 令 來(lái) 解 釋 執(zhí) 行 這?copy;Java字節(jié) 碼。Java程 序 源 碼 必 須 存 放 在 后 綴 為.java的 文 件 里。Java 程序 里 的 每 一 個(gè) 類(lèi),javac都 將 生 成 與 類(lèi) 相 同 名 稱(chēng) 但 后 綴 為.class文件。 編 譯 器 把.class文 件 放 在.java文 件 的 同 一 個(gè) 目 錄 里, 除 非你 用 了-d選 項(xiàng)。 當(dāng) 你 引 用 到 某?copy;自 己 定 義 的 類(lèi) 時(shí), 必 須指 明 它 們 的 存 放 目 錄, 這 就 需 要 利 用 環(huán) 境 變 量 參 數(shù) CLASSPATH。環(huán) 境 變 量CLASSPATH是 由 一?copy;被 分 號(hào) 隔 開(kāi) 的 路 徑 名 組 成。 如果 傳 遞 給javac編 譯 器 的 源 文 件 里 引 用 到 的 類(lèi) 定 義 在 本 文 件和 傳 遞 的 其 它 文 件 中 找 不 到, 則 編 譯 器 會(huì) 按 CLASSPATH定 義的 路 徑 來(lái) 搜 索。 例 如:
CLASSPATH = .;C:\java\classes 則 編 譯 器 先 搜 索 當(dāng) 前 目 錄, 如果 沒(méi) 搜 索 到, 則 繼 續(xù) 搜 索C:\java\classes目 錄。 注 意, 系 統(tǒng) 總是 將 系 統(tǒng) 類(lèi) 的 目 錄 缺 省 地 加 在CLASSPATH后 面, 除 非 你 用 -classpath選項(xiàng) 來(lái) 編 譯。 javac_g 是 一 個(gè) 用 于 調(diào) 試 的 未 優(yōu) 化 的 編 譯 器, 功能 與 用 法 和javac一 樣。 javac的 用 法 如 下:
javac [-g][-O][-debug][-depend][-nowarn][-verbose][-classpath path][-nowrite][-d dir] file.java...
以 下 是 每 個(gè) 選 項(xiàng) 的 解 釋。
Java不 僅 提?copy;了 一 個(gè) 豐 富 的 語(yǔ) 言 和 運(yùn) 行 環(huán) 境, 而 且 還提?copy;了 一 個(gè) 免 費(fèi) 的Java開(kāi) 發(fā) 工 具 集(Java Developers Kits, 簡(jiǎn)稱(chēng)JDK)。 編 程 人 員 和 最 終 用 戶(hù) 可 以 利 用 這?copy;工 具 來(lái) 開(kāi) 發(fā)java程序 或 調(diào) 用Java 內(nèi) 容。JDK包 括 以 下 工 具: javac Java語(yǔ) 言 編 譯 器,輸 出 結(jié) 果 為Java字 節(jié) 碼 java Java字 節(jié) 碼 解 釋 器 javap Disassembeler: Java字 節(jié) 碼 分 解 程 序, 本 程 序 返 回Java程 序 的 成 員 變 量 及 方法 等 信 息。 javaprof 資 源 分 析 工 具, 用 于 分 析Java程 序 在 運(yùn) 行過(guò) 程 中 調(diào) 用 了 哪?copy;資 源, 包 括 類(lèi) 和 方 法 的 調(diào) 用 次 數(shù) 和時(shí) 間, 以 及 各 數(shù) 據(jù) 類(lèi) 型 的 內(nèi) 存 使 用 情 況 等。 javah C代 碼 處理 工 具, 用 于 從Java類(lèi) 調(diào) 用C++代 碼 java Applet Viewer 小 應(yīng) 用 程序 瀏 覽 工 具, 用 于 測(cè) 試 并 運(yùn) 行Java小 應(yīng) 用 程 序 java Debugger API Java調(diào) 試 工 具API Prototype Debugger Java調(diào) 試 工 具 原 型
Java開(kāi) 發(fā) 環(huán) 境 還 包 括Java類(lèi) 庫(kù)(包 括I/O類(lèi) 庫(kù)、 用 戶(hù) 界 面 類(lèi) 庫(kù)、網(wǎng) 絡(luò) 類(lèi) 庫(kù) 等)和HotJava WWW 瀏 覽 器。 其 中,HotJava瀏 覽 器 提?copy;了在WWW環(huán) 境 下 運(yùn) 行Java代 碼 的 一 個(gè) 運(yùn) 行 系 統(tǒng), 而 且 還 為WWW開(kāi) 發(fā)人 員 提?copy;了 一 個(gè)Java開(kāi) 發(fā) 框 架。Java解 釋 器 是 面 向 Java程 序的 一 個(gè) 獨(dú) 立 運(yùn) 行 系 統(tǒng), 它 可 以 一 種 穩(wěn) 定、 高 性 能 方 式 運(yùn) 行那?copy;獨(dú) 立 于 平 臺(tái) 的Java字 節(jié) 碼,Java編 譯 器 則 用 于 生 成 這?copy;字節(jié) 碼。
2.1.1 Java程 序 的 編 譯
Java程 序 的 編 譯 程 序 是javac.exe。javac命 令 將Java程 序 編 譯 成字 節(jié) 碼, 然 后 你 可 用java解 釋 器java命 令 來(lái) 解 釋 執(zhí) 行 這?copy;Java字節(jié) 碼。Java程 序 源 碼 必 須 存 放 在 后 綴 為.java的 文 件 里。Java 程序 里 的 每 一 個(gè) 類(lèi),javac都 將 生 成 與 類(lèi) 相 同 名 稱(chēng) 但 后 綴 為.class文件。 編 譯 器 把.class文 件 放 在.java文 件 的 同 一 個(gè) 目 錄 里, 除 非你 用 了-d選 項(xiàng)。 當(dāng) 你 引 用 到 某?copy;自 己 定 義 的 類(lèi) 時(shí), 必 須指 明 它 們 的 存 放 目 錄, 這 就 需 要 利 用 環(huán) 境 變 量 參 數(shù) CLASSPATH。環(huán) 境 變 量CLASSPATH是 由 一?copy;被 分 號(hào) 隔 開(kāi) 的 路 徑 名 組 成。 如果 傳 遞 給javac編 譯 器 的 源 文 件 里 引 用 到 的 類(lèi) 定 義 在 本 文 件和 傳 遞 的 其 它 文 件 中 找 不 到, 則 編 譯 器 會(huì) 按 CLASSPATH定 義的 路 徑 來(lái) 搜 索。 例 如:
CLASSPATH = .;C:\java\classes 則 編 譯 器 先 搜 索 當(dāng) 前 目 錄, 如果 沒(méi) 搜 索 到, 則 繼 續(xù) 搜 索C:\java\classes目 錄。 注 意, 系 統(tǒng) 總是 將 系 統(tǒng) 類(lèi) 的 目 錄 缺 省 地 加 在CLASSPATH后 面, 除 非 你 用 -classpath選項(xiàng) 來(lái) 編 譯。 javac_g 是 一 個(gè) 用 于 調(diào) 試 的 未 優(yōu) 化 的 編 譯 器, 功能 與 用 法 和javac一 樣。 javac的 用 法 如 下:
javac [-g][-O][-debug][-depend][-nowarn][-verbose][-classpath path][-nowrite][-d dir] file.java...
以 下 是 每 個(gè) 選 項(xiàng) 的 解 釋。