在 早 期 前Betal版 的Java調(diào) 試 器jdb是 命 令 行 形 式 的, 如 用Sun公司 的dbx調(diào) 試 器。 用jdb來 調(diào) 試Java應(yīng) 用 程 序, 在 調(diào) 試?reg;前, 要確 證 你 的 應(yīng) 用 程 序 是 帶 標(biāo) 志 -g編 譯 的。 例 如: javac -g HelloWorld.java
help命 令 將 顯 示jdb 里 的 可 用 命 令 列 表。
>help <命 令 列 表> threads [threadgroup]--列 出 線 程 thread- - 設(shè) 置 缺 省 線 程 Suspend [threads id(s)]- - 將線 程 掛 起 resume [thread id(s)]- - 重 新 啟 動(dòng) 線 程 where [id] |a1|-- 打 印 線 程 的 堆 棧 threadgroups--列 出 線 程 組 號(hào) threadgroup -- 設(shè) 置 當(dāng) 前 線 程 組 print [id(s)]- - 打 印 對(duì) 象 或 域 dump [id(s)]- - 打 印 所 有 對(duì) 象 信 息 locals- - 打 印當(dāng) 前 堆 棧 所 有 局 部 變 量 classes- - 列 出 當(dāng) 前 所 知 的 類 methods - - 列 出 一 個(gè) 類 的 成 員 函 數(shù) stop in .-- 在 一 個(gè) 成 員 函 數(shù) 里 設(shè) 置 斷 點(diǎn) stop at :-- 在 一 行 里 設(shè) 置 斷 點(diǎn) up [n frames]- - 在 線 程 堆 棧 里 往 上 移 down [n frames]- - 在 線 程 堆 棧 里 往 下 移 clear :-- 清 除 一 個(gè) 斷 點(diǎn) step - - 執(zhí) 行 當(dāng) 前 行 cont- - 從 斷 點(diǎn) 處 繼續(xù) 執(zhí) 行 catch - - 為 指 定 的 情 況 中 斷 ignor -- 為 指 定 的 情 況 忽 略 list [line number]- - 打 印 源 程 序 use [Sourcefile path]- - 顯 示 或 改 變 源 路 徑 memeory- - 報(bào) 告 內(nèi) 存 使 用 情 況 load classname- - 加 載Java類 以 便 調(diào) 試 run - - 開 始執(zhí) 行 加 載 的 類 !!- - 重 復(fù) 以 上 的 命 令 help(?)- - 列 出 所 有的 命 令 exit( or quit)- - 離 開 調(diào) 試 器
2.1.3 Java程 序 的 執(zhí) 行
java - java語 言 解 釋 器 java命 令 解 釋java 字 節(jié) 碼
語 法: java [ options ] classname java_g [ options ] classname
描 述: java命 令 由java編 譯 器javac輸 出 的Java字 節(jié) 碼。
classname參 數(shù) 是 要 執(zhí) 行 的 類 名 稱。 注 意 任 意 在 類 名 稱 后的 參 數(shù) 都 將 傳 遞 給 要 執(zhí) 行 類 的main 函 數(shù)。
java執(zhí) 行 完main函 數(shù) 后 推 出, 除 非main函 數(shù) 創(chuàng) 建 了 一 個(gè) 或 多個(gè) 線 程。 如 果main函 數(shù) 創(chuàng) 建 了 其 它 線 程,java總 是 等 到 最 后 一個(gè) 線 程 推 出 才 推 出。
選 項(xiàng):
-cs, -checksource 當(dāng) 一 個(gè) 編 譯 過 的 類 調(diào) 入 時(shí), 這 個(gè) 選 項(xiàng) 將比 較 字 節(jié) 碼 更 改 時(shí) 間 與 源 文 件 更 改 時(shí) 間, 如 果 源 文 件 更改 時(shí) 間 靠 后, 則 重 新 編 譯 此 類 并 調(diào) 入 此 新 類。
-classpath path 定 義javac搜 索 類 的 路 徑。 它 將 覆 蓋 缺 省 的CLASSPATH環(huán)境 變 量 的 設(shè) 置。 路 徑 是 由 一?copy;由 逗 號(hào) 隔 開 的 路 徑 名 組成, 一 般 格 式 如 下: .; 例 如: .;C:\java\doc\classes;C:\tools\java\classes 表 示 解 釋 器 遇 到 一 個(gè) 新 類, 它 先 在 本 文 件 中 查 找 它 的 定義, 如 果 沒 有, 則 在 本 文 件 所 處 目 錄 下 其 它 文 件 中 查 找 它的 定 義, 如 果 還 沒 有, 則 繼 續(xù) 搜 索C:\java\doc\classes目 錄 中 的所 有 文 件, 以 此 類 推。
-mx x 設(shè) 置 最 大 內(nèi) 存 分 配 池, 大 小 為x,x必 須 大 于1000bytes。缺 省 為16兆。
-ms x 設(shè) 置 垃 圾 回 收 堆 的 大 小 為x,x必 須 大 于1000bytes。 缺省 為1兆。
-noasyncgc 關(guān) 閉 異 步 垃 圾 回 收 功 能。 此 選 項(xiàng) 打 開 后, 除 非顯 式 調(diào) 用 或 程 序 內(nèi) 存 溢 出, 垃 圾 內(nèi) 存 都 不 回 收。 本 選 項(xiàng) 不打 開 時(shí), 垃 圾 回 收 線 程 與 其 它 線 程 異 步 同 時(shí) 執(zhí) 行。
-ss x 每 個(gè)Java線 程 有 兩 個(gè) 堆 棧, 一 個(gè) 是java代 碼 堆 棧, 一 個(gè)是C代 碼 堆 棧。-ss選 項(xiàng) 將 線 程 理C代 碼 用 的 堆 棧 設(shè) 置 成 最 大 為x。
-oss x 每 個(gè)Java線 程 有 兩 個(gè) 堆 棧, 一 個(gè) 是java代 碼 堆 棧, 一個(gè) 是C代 碼 堆 棧。-oss選 項(xiàng) 將 線 程 理java代 碼 用 的 堆 棧 設(shè) 置 成最 大 為x。
-v, -verbose 讓java解 釋 器 在 每 一 個(gè) 類 被 調(diào) 入 時(shí), 在 標(biāo) 準(zhǔn) 輸出 打 印 相 應(yīng) 信 息。
環(huán) 境 變 量
CLASSPATH 用 來 提?copy;給 系 統(tǒng) 搜 索 用 戶 定 義 的 類 的 缺 省 路徑。 各 路 徑 由 分 號(hào) 隔 ?例 如:
.;C:\java\doc\classes;C:\tools\java\classes 表 示 解 釋 器 遇 到 一個(gè) 新 類, 它 先 在 本 文 件 中 查 找 它 的 定 義, 如 果 沒 有, 則 在本 文 件 所 處 目 錄 下 其 它 文 件 中 查 找 它 的 定 義, 如 果 還 沒有, 則 繼 續(xù) 搜 索C:\java\doc\classes目 錄 中 的 所 有 文 件, 以 此 類推。
help命 令 將 顯 示jdb 里 的 可 用 命 令 列 表。
>help <命 令 列 表> threads [threadgroup]--列 出 線 程 thread
2.1.3 Java程 序 的 執(zhí) 行
java - java語 言 解 釋 器 java命 令 解 釋java 字 節(jié) 碼
語 法: java [ options ] classname java_g [ options ] classname
描 述: java命 令 由java編 譯 器javac輸 出 的Java字 節(jié) 碼。
classname參 數(shù) 是 要 執(zhí) 行 的 類 名 稱。 注 意 任 意 在 類 名 稱 后的 參 數(shù) 都 將 傳 遞 給 要 執(zhí) 行 類 的main 函 數(shù)。
java執(zhí) 行 完main函 數(shù) 后 推 出, 除 非main函 數(shù) 創(chuàng) 建 了 一 個(gè) 或 多個(gè) 線 程。 如 果main函 數(shù) 創(chuàng) 建 了 其 它 線 程,java總 是 等 到 最 后 一個(gè) 線 程 推 出 才 推 出。
選 項(xiàng):
-cs, -checksource 當(dāng) 一 個(gè) 編 譯 過 的 類 調(diào) 入 時(shí), 這 個(gè) 選 項(xiàng) 將比 較 字 節(jié) 碼 更 改 時(shí) 間 與 源 文 件 更 改 時(shí) 間, 如 果 源 文 件 更改 時(shí) 間 靠 后, 則 重 新 編 譯 此 類 并 調(diào) 入 此 新 類。
-classpath path 定 義javac搜 索 類 的 路 徑。 它 將 覆 蓋 缺 省 的CLASSPATH環(huán)境 變 量 的 設(shè) 置。 路 徑 是 由 一?copy;由 逗 號(hào) 隔 開 的 路 徑 名 組成, 一 般 格 式 如 下: .;
-mx x 設(shè) 置 最 大 內(nèi) 存 分 配 池, 大 小 為x,x必 須 大 于1000bytes。缺 省 為16兆。
-ms x 設(shè) 置 垃 圾 回 收 堆 的 大 小 為x,x必 須 大 于1000bytes。 缺省 為1兆。
-noasyncgc 關(guān) 閉 異 步 垃 圾 回 收 功 能。 此 選 項(xiàng) 打 開 后, 除 非顯 式 調(diào) 用 或 程 序 內(nèi) 存 溢 出, 垃 圾 內(nèi) 存 都 不 回 收。 本 選 項(xiàng) 不打 開 時(shí), 垃 圾 回 收 線 程 與 其 它 線 程 異 步 同 時(shí) 執(zhí) 行。
-ss x 每 個(gè)Java線 程 有 兩 個(gè) 堆 棧, 一 個(gè) 是java代 碼 堆 棧, 一 個(gè)是C代 碼 堆 棧。-ss選 項(xiàng) 將 線 程 理C代 碼 用 的 堆 棧 設(shè) 置 成 最 大 為x。
-oss x 每 個(gè)Java線 程 有 兩 個(gè) 堆 棧, 一 個(gè) 是java代 碼 堆 棧, 一個(gè) 是C代 碼 堆 棧。-oss選 項(xiàng) 將 線 程 理java代 碼 用 的 堆 棧 設(shè) 置 成最 大 為x。
-v, -verbose 讓java解 釋 器 在 每 一 個(gè) 類 被 調(diào) 入 時(shí), 在 標(biāo) 準(zhǔn) 輸出 打 印 相 應(yīng) 信 息。
環(huán) 境 變 量
CLASSPATH 用 來 提?copy;給 系 統(tǒng) 搜 索 用 戶 定 義 的 類 的 缺 省 路徑。 各 路 徑 由 分 號(hào) 隔 ?例 如:
.;C:\java\doc\classes;C:\tools\java\classes 表 示 解 釋 器 遇 到 一個(gè) 新 類, 它 先 在 本 文 件 中 查 找 它 的 定 義, 如 果 沒 有, 則 在本 文 件 所 處 目 錄 下 其 它 文 件 中 查 找 它 的 定 義, 如 果 還 沒有, 則 繼 續(xù) 搜 索C:\java\doc\classes目 錄 中 的 所 有 文 件, 以 此 類推。