发信人: freely (Good Good Study), 信区: BorlandDev
标 题: Borland 的JBuilder 集 成 开 发 环 境 初 窥
发信站: 哈工大紫丁香 (2001年02月15日19:51:52 星期四), 站内信件
Borland 的JBuilder 集 成 开 发 环 境 初 窥
经 过 长 时 间 的 储 势 待 时,Borland 终 于 向java IDE 市 场 发 起
了 大 举 进 攻―― 本 文 将 告 诉 你 这 一 工 具 的 够 格 程 度, 以 及 与S
ymantec 的Visual Cafe 相 比, 它 究 竟 如 何
摘 要 java 最 先 发 布 之 初,Borland 是 率 先 进 入java 工 具 市 场
的 公 司 之 一。 那 时 的 所 谓 进 入, 就 是 将java 作 为 附 属 物," 粘 贴
" 在 他 们 的C++ 产 品, 即Borland C++ 5.0 之 上。 这 一 战 略 决 策, 与Sym
antec 公 司 所 遵 从 的 做 法 大 致 相 同,Symantec 最 初 也 是 利 用 其 已
有 的IDE 编 码 基 地, 然 后 才 转 移 到 专 用 的 编 码 基 地 之 上 的。 但
在 对java 付 出 最 初 努 力 之 后,Borland 经 历 了 一 段 时 间 的 反 思, 它
在java 工 具 的 前 沿, 从 表 面 上 看, 几 乎 没 有 获 得 什 么 进 展。 现
在, 随 着JBuilder 的 发 布,Borland 将 就java 工 具 市 场 提 出 新 的 势 力
划 分 要 求。
在1995 年7 月, 当 我 初 次 听 到Borland 将 生 成 一 个java 开 发 工
具 的 时 候, 我 就 非 常 高 兴。 由 于Borland 公 司 是 唯 一 的 一 家 可 以
削 弱Microsoft 所 制 造 的Visual Basic 特 许 权 的 公 司。 而 且,Borland 公
司 的Delphi 开 发 环 境, 被 众 多 的 开 发 者 认 为 是 市 场 上 最 好 的 快
速 应 用 开 发(RAD) 工 具。 因 此, 在95 年 未, 当 我 买 到 了 支 持Java 的
Borland C++ 时, 我 曾 十 分 激 动。
然 而 不 幸 的 是, 那 时Borland 的 努 力 与 所 期 望 的 还 相 差 甚
远。 这 一 产 品 的 最 大 缺 点 就 是 其 对java 的 支 持 其 实 是 将java 以
一 种 嵌 入 模 式(add-on module) 加 入 到C++ 中, 而 不 是 开 发 一 个 有 自
身 特 色 的 工 具。 将java 嵌 入C++ 中 的 做 法 所 带 来 的 一 个 难 题, 就
是 从 编 译 部 件、 对 象 文 件 和 编 译 目 标 等 等 方 面 来 看,java 都 与
C++ 格 格 不 入。 在java 环 境 中, 你 编 译 了 一 个 类 文 件 成 为 对 象 之
后, 你 就 可 以 实 例 化 在 你 的 系 统 上 已 有 的 其 它 对 象。 在 这 种
情 况 下, 没 有 在 继 承 式 的C++ IDE 中 应 用 的, 诸 如".exe" 和".dll" 之
类 的 目 标 文 件。 因 此, 利 用 这 一 工 具, 创 建 一 个Java 类 是 十 分
麻 烦 的, 类 文 件 几 乎 可 算 是 不 存 在, 可 以 这 么 说, 对 它 的 体
验 整 个 来 说 都 是 不 满 意 的。 尽 管 它 的C++ 编 译 器 做 得 十 分 强 大
。
在 这 个 嵌 入 式 的C++ 产 品 推 出 之 后, 有 关"Latte" 的 消 息 也
开 始 传 扬 了 出 来。"Latte" 是 他 们 给 将 要 开 发 的IDE 环 境 所 起 的
名 称 代 码, 这 个IDE 环 境 将 由 来 自 于Delphi 开 发 组 的 工 程 师 来 开
发, 但 它 将 全 部 采 用java 语 言 来 编 写。 然 而, 这 个 雄 心 勃 勃 的
开 发 项 目 却 迟 迟 不 能 得 到 实 现;1996 年, 在San Francisco 的 第 一
次JavaOne 开 发 者 会 议 上, 展 出 了 它 的 演 示 版, 接 下 来 的97 年Java
One 会 议 上, 只 能 又 一 次 看 到 它 的 演 示。 终 于, 时 至 今 日, 这 一
期 待 已 久 的 产 品 被 定 名 为JBuilder, 正 式 发 布 推 出。
JBuilder快速巡游
JBuilder 共 享 了 许 多Delphi 世 界 的 主 旋 律, 而 且 可 感 觉 到
它 酷 似Symantec 的Visual Cafe 工 具。 因 此, 对 我 来 说, 要 想 让JBuild
er 转 起 来 是 十 分 容 易 的―― 即 使 不 去 读 所 提 供 的 文 件。( 当 我
确 实 有 疑 问 的 时 候, 从 其 所 描 述 的 可 选 项 上 看, 这 个 文 件 是
相 当 完 备 的。)
JBuilder 环 境 包 括 一 个" 控 制 棒"( 它 是 一 个 可 浮 动 的 工 具
条 窗 口) 和 一 个" 浏 览 窗 口"( 在 这 个 窗 口 中, 左 边 有 一 个 可 层
叠 的 树 型 控 件, 右 边 是 一 个 查 看 窗 口)。 在 此 环 境 中, 只 能 打
开 一 个 控 制 棒, 但 能 打 开 多 个 浏 览 窗 口。
控 制 棒, 包 括 了 横 在 顶 端 的 标 准 菜 单 命 令、 一 组 位 于
左 上 方 的 快 捷 工 具 条、 以 及 一 系 列 你 可 以 在 你 的 应 用 系 统 或
applet 中 使 用 的 组 件(JavaBeans). 在 快 捷 工 具 条 和 组 件 的 下 方 是
一 个 状 态 行, 它 将 随 着 当 前 活 动 状 态 的 改 变 而 不 断 变化。
浏 览 窗 口 是 你 与 你 的 源 文 件( 不 论 是HTML 还 是Java) 进 行
交 互 的 场 所。 在 浏 览 窗 口 之 上 的 是 控 制 棒, 它 可 使 你 产 生 一
些 动 作( 例 如rebuild 你 的 应 用 程 序) 并 且 还 保 存 着 在 你 的 应 用
程 序 中 可 能 用 到 的 一 系 列JavaBean。 另 外, 每 一 个 浏 览 窗 口 能 够
显 示 其 中 各 个 项 目 的 开 展 情 况, 因 此, 如 果 你 需 要 同 时 在 多
个 开 发 项 目 上 工 作―― 例 如 开 发 一 个 新 的JavaBean 和 应 用 这 个J
avaBean 的 应 用 程 序―― 那 么 你 只 需 将 这 些 项 目 打 开 一 次, 就 可
以 在 这 些 项 目 之 间 实 现 翻 动 转 换。 这 个 功 能 给 我 很 深 的 印 象
, 因 为 它 支 持 最 通 常 情 况 下 的Java 开 发: 需 要 马 上 实 现 在 几 个
不 同 组 成 部 分 之 间 的 翻 转, 在 某 个 浏 览 窗 口 中, 可 能 是 工 具
类 项 目, 在 另 一 个 浏 览 窗 口 中, 是 应 用 这 些 工 具 类 的Applet, 而
在 第 三 个 窗 口 中, 是 应 用 这 个Applet 的 一HTML 语 言。
浏 览 窗 口 被 垂 直 分 隔―― 在 左 边 的 是 文 件 树 视 图, 右 边
的 是 一 个 查 看 窗 口。 垂 直 分 隔 在 系 统 中 被 称 为"curtain( 帘 子)"
。 当 你 需 要 全 屏 幕 查 看 你 所 写 的 源 代 码 的 时 候,Borland 的 用 户
界 面 允 许 你 撤 去curtain。 在 每 个 浏 览 窗 口 的 下 部, 是 一 些 控 制
标 签, 它 能 够 根 据 你 所 选 的 视 角 转 换 浏 览 窗 口 的 显 示 内 容。
当 查 看java 源 代 码 的 时 候, 在 浏 览 窗 口 下 部 的 标 签 分 别
是source( 源 代 码),design( 设 计), 和doc( 文 件)。
点 击source 标 签, 将 显 示 你 的Java 源 代 码, 而 且 你 可 以 利 用JBuild
er 所 带 的 句 法 加 亮 编 辑 器 来 编 辑 你 的 源 代 码。
点 击design 标 签, 将 显 示 一 个 可 视 化 的 工 作 空 间, 其 中 有 你 定
义 的 用 户 界 面 信 息。 例 如, 如 果 你 的 源 代 码 中, 有 面 板 定 义,
按 钮 等 等, 那 么 这 个 面 板 就 是 在 组 织 界 面 信 息 时, 你 能 进 行
拖 放(drag-and-drop) 操 作 的 领 域。
点 击doc 标 签, 将 向 你 显 示 从 源 代 码 的 嵌 套 注 释 中 产 生 出 来 的
HTML 文 件。 利 用JavaDoc, 可 以 抽 取 出 这 个HTML 文 件, 然 而, 我 却 不
能 找 到 一 个 自 动 化 的 方 法, 来 产 生 这 一 文 件。
或 许 浏 览 窗 口 实 现 中, 最 精 明 的 一 点 就 是, 当 你 在 浏
览 一 个 类 文 件 的 时 候, 浏 览 器 可 读 入 类 文 件 并 且 能 够 将 其 反
编 译, 足 使 你 可 以 看 清 源 代 码 的 结 构 情 况。 这 在 你 习 惯 于 阅
读 源 代 码, 而 不 习 惯 于 查 看 对 象 图 表 的 情 况 下, 将 会 十 分 有
用。 此 外, 当 你 选 择 了 任 何 一 个java 标 准 类 或 是Borland 定 制 的
类 后, 点 击doc 标 签, 将 会 返 回 这 个 类 的javaDoc 页 面。 它 允 许 你
做 如 下 的 事 情: 加 亮 一 个 系 统 类, 选 择"browse selected symbol", 并
且 可 以 观 看 这 个 类 的 重 建 源 代 码 或HTML 文 件。 我 喜 欢 这 个 功
能, 它 保 存 了 嵌 入javaDoc 数 据 中 的HTML 文 档 的 格 式, 从 整 体 上 讲
, 它 可 将java 文 件 转 换 为Microsoft 的"help" 文 件。
JBuilder调试 程 序
当 然, 编 写 代 码 是 容 易 的。 但 要 弄 转 它 就 不 那 么 简 单
了。 或 许 对 于 任 何 一 个IDE 而 言, 最 重 要 的 特 性 就 是 其 调 试 程
序(debugger)。 幸 运 的 是,Borland JBuilder 的 调 试 程 序 没 有 让 人 失 望
。
在 调 试 过 程 中, 浏 览 窗 口 被 重 新 设 置, 以 帮 助 你 看 到
类 的 状 态。 树 结 构 文 件 视 图 被 分 成 上 下 两 个 窗 口, 上 一 个 窗
口 包 括 线 程 状 态, 下 一 窗 口 包 括 了 活 动 变 量 的 信 息。 而 且, 左
边 的 浏 览 器 的 下 部 还 增 加 了 一 些 标 签, 以 控 制 调 试 程 序 的 运
作。
另 外, 弹 出 窗 口 将 在 源 程 序 窗 口 中 显 示 一 个 变 量 的 值
, 这 与Symantec 调 试 程 序 的 工 作 情 况 大 致 相 同。 所 有 的 标 准 调
试 特 征 都 提 供 在 调 试 程 序 中: 单 步 调 式、 监 视 点、 断 点、 假 设
断 点 等 等。 这 里, 值 得 注 意 的 是 对 它 对 线 程 的 支 持, 这 是 其
最 杰 出 的 一 点。 在 左 上 角 的 线 程 窗 口 中, 你 可 以 点 击 在 当 前
正 在 执 行 的 任 何 一 条 线 程 中 的 任 何 一 行 代 码, 源 程 序 窗 口 将
会 马 上 跳 到 源 代 码 中 的 相 应 位 置。 此 外, 在 左 下 方 的 窗 口 中
, 将 会 显 示 这 一 线 程 可 见 的 任 何 一 个 本 地 的 或 全 程 的 状 态 变
量。JBuilder 的 调 试 程 序 代 表 了 新 的 调 式 程 序 标 准, 对 当 前 其
它 的Java 调 试 程 序 标 准 将 肯 定 构 成 不 小 的 冲 击。
在 源 代 码 窗 口 的 左 侧 上, 有 一 些 小 的 圆 点, 它 表 明 这
些 行 是 你 可 设 置 断 点 的 地 方。 点 击 小 圆 点, 将 加 亮 该 行, 并 且
出 现 一 个 断 点 符 号。 另 一 个 有 用 的 特 征 是"run to cursor"( 运 行
到 光 标 所 在 位 置)―― 在 某 些 情 况 下, 你 可 能 不 想 用 单 步 调 试
来 循 环 反 复, 直 至 走 出 一 个 循 环。 你 可 以 先 点 击 你 想 让 程 序
运 行 到 的 那 一 行, 然 后 选 择"run to cursor", 那 么 程 序 将 会 立 即
执 行, 并 在 你 点 击 的 那 个 位 置 上 停 下。
输 出 处 理
在JBuilder 中, 我 所 发 现 的 最 后 一 个 特 别 有 用 的 领 域 是
它 对 一 个Java 应 用 程 序 执 行 结 果 输 出 的 处 理。 执 行 日 志(executi
on log) 是 一 个 容 纳 当 前 执 行 程 序 中, 所 有 传 递 给System.out 的 数
据 的 窗 口。
然 而, 当 在 多 个 项 目 都 打 开 的 情 况 下, 执 行 日 志 将 会
为 每 一 个 项 目 的 运 行 情 况 加 上 一 个 标 签 ! 下 面 是 有 关 这 方 面
的 一 个 例 子。 图4
为多 个 项 目 保 持 独 立 的 标 签
从 图 中 可 以 看 到, 执 行 日 志 有 两 个 标 签, 一 个 为"exampl
e" 项 目 的 日 志, 另 一 个 为"BASIC" 的 日 志, 它 是 当 前 的 项 目。 这
种 独 立 的 日 志 在 同 时 创 建 多 个 类 库 的 情 况 下 是 十 分 重 要 的,
因 为 它 将 使 你 不 会 把 两 个 项 目 的 输 出 混 淆 起 来。
JBuilder的
什 么 地 方 是 我 所 喜 欢 的
有 些 情 况 下, 这 简 直 就 不 足 以 称 道。 但 我 的 确 喜 欢 它
能 将Java 源 代 码 打 印 到 彩 色 打 印 机 上, 并 且 打 印 出 的 结 果 与 我
们 在 源 代 码 窗 口 中 所 看 到 的 字 体 及 句 法 加 亮 特 色 一 模 一 样。
如 果 我 想 定 制 页 面 的 页 眉 及 页 脚, 并 且 指 定 双 栏 输 出( 在 一
个 输 出 页 面 上, 分 两 栏 打 印 源 代 码), 它 简 直 就 是 完 美 无 缺。
它 对Java 1.1 的 支 持 也 是 非 常 卓 越 的。 在JDK 1.1 被 推 出 一
段 时 间 之 后,Symantec 推 出 支 持1.1 的Beta 版, 但 它 一 点 都 不 象 一
个 可 与1.1 一 起 工 作 的IDE。
正 如 我 上 面 所 说 的,JBuilder 的 调 试 程 序 同 样 也 非 常 出
色: 它 用 通 俗 易 懂 的 方 式 提 供 了 大 量 信 息。 在 此, 许 多 的 调 试
工 作 都 是" 瞄 准―― 射 击"(point--and--shoot) 式 的, 对 此 各 人 褒 贬
不 一, 有 的 人 喜 欢( 我 的 确 喜 欢), 有 的 人 不 敢 苟 同。 我 认 为 它
足 以 查 出 即 使 是 最 难 发 现 的 线 程 死 锁 错 误。
我 不 喜 欢
JBuilder的地方
JBuilder 是 一 个 可 以 设 置 的IDE, 但 实 际 上 在 两 种 重 要 情
况 下 却 不 能 进 行 设 置:
首 先, 你 不 能 在 显 示 之 时 设 定 缺 省 的 背 景 和 前 景 颜 色
。 相 反, 你 得 先 为 你 的 整 个 桌 面 系 统 进 行 设 置, 此 时JBuilder 才
会 注 意 到 颜 色 的 变 化。 然 而 奇 怪 的 是, 利 用JBuilder 所 提 供 的
颜 色 对(color scheme), 你 也 可 以 进 行 设 置。
第 二 个 严 重 的 缺 陷 是, 你 不 可 以 定 制 编 辑 器 的 快 捷 键
。 在 这 方 面, 我 所 喜 欢 的 两 个 编 辑 器 是EMACS 和 程 序 员 文 件 编
辑 器(PFE)。JBuilder 的 编 辑 器 的 定 制 表 能 够 让 你 选 择 一 些 预 装 的
键 盘 映 像( 其 中 包 括default,Brief,Classic 和Epsilon), 它 也 能 够 让 你
去 选 择 采 用 什 么 样 的 方 式, 使 一 些 诸 如 自 动 缩 排, 颜 色 加 亮
, 自 动 换 行 等 的 工 作 适 合 你 的 需 要。 但 我 仍 然 希 望 寻 找 到 一
个 能 够 让 你 用Java 去 定 义 宏 的 编 辑 器。
在 表 现 方 面,JBuilder 有 一 些 小 小 的 错 误, 我 希 望 在 第 一
个 发 布 的 修 订(patch) 或 适 当 情 况 下,Borland 能 够 修 正 它 们。 举
个 例 子, 当 你 的 桌 面 系 统 选 择 了" 大 字 体" 的 时 候( 在 这 方 面,M
icrosoft 坚 持 采 用 以Arial 10 为 基 础, 并 乘 以 其 它 因 数 的 方 法),
有 关 工 具 条 需 要 多 大 空 间 的 计 算 停 止 了, 并 且 组 件 库 的 图 标
也 被 切 去。 另 一 方 面, 如 果 你 在 你 的 桌 面 属 性 中 的"Appearance"
部 分, 明 确 地 设 置 了 显 示 字 体, 例 如14 点 阵 的Arial, 那 么, 组 件
条 将 会 正 确 地 反 映 出 来。 显 而 易 见, 这 是 一 个Microsoft 的 伪 造
(10 点 阵 的 字 体 并 不 一 定 显 示 成10 点 阵 的 字 体), 但 是, 这 种 分
歧 只 能 由Borland 来 对 付。
我 不 喜 欢 所 有Java IDE 的 地 方 在 于, 它 们 依 赖 于 它 们 自
己" 定 制 的"Java 虚 拟 机 来 进 行 开 发。 我 希 望 在 将 来, 所 有 的IDE
都 可 以 在 标 准 的Java Runtime Environment(Java 运 行 时 刻 环 境,JRE) 和
一 些 自 定 义 的 类 库 上 运 行。 目 前, 仍 没 有 人 从 事 这 方 面 的 工
作。
什 么 是 我 希 望 它 能 有 的
当 然, 没 有 一 件 产 品 能 够 对 所 有 人 来 说 都 是 十 全 十 美
的, 因 些 我 提 出 的 看 法 或 许 对 某 些 人 来 说 只 能 会 是 噪 杂 之 言
。 但 是, 本 着" 言 者 无 过" 的 精 神, 我 还 是 希 望 在JBuilder( 或 任 何
相 应 的IDE) 中, 能 够 看 到 以 下 三 大 件:
能 够 拨 弄IDE 设 置 控 制―― 键 盘 映 射, 显 示 颜 色, 和 布 局
调 试 程 序 的 纵 面 支 持―― 调 用 追 踪/ 定 时, 堆 栈 的 使 用 情 况, 垃
圾 图 式 等 等
源 代 码 控 制―― 这 是 一 个Java 较 为 弱 的 地 方( 版 本 控 制), 希 望 能
提 供 一 个 智 能 的 控 制 系 统, 能 够 注 意 到 什 么 时 候 约 定 已 经 改
变( 不 兼 容 的 类 改 变 了) 和 什 么 改 变 在 何 时 将 被 真 正 对 付。
总 结
JBuilder 工 具 非 常 容 易 进 入 日 渐 红 火 的IDE 市 场。 在 某 些
方 面, 它 表 现 出 了 非 常 卓 越 的 能 力―― 例 如JavaBean、 调 试、 多
项 目 管 理、 和 用 户 界 面 设 计。 尽 管 此 次JBuilder 的 推 出 是1.0 版 的
推 出, 但 是, 它 在 显 示 和IDE 定 制 上 还 略 显 粗 糙。 另 外,JBuilder
对Java 1.1 的 支 持 是 超 凡 脱 俗 的。 我 的 观 点 是, 作 为 第 一 次,Sy
mantec 公 司 的 伙 计 们 将 会 感 觉 到, 他 们 的Visual Cafe Pro 产 品 将 面
对 一 个 非 常 强 大 的 对 手。
--
I know i love you before i met you.
I've been waiting all my life ... ...
yours,
freely
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.170.253]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:206.864毫秒