计算机世界2000.3.21
JBuilder 3 Foundation 基 于Linux的免 费Java开发环境
孙 少 依 编 译
---- 编 者 按: 昨 天,Pascal 和Windows
应 用 编 程 铸 就 的 辉 煌 已 成 为 过 眼 云 烟。 今
天,Inprise 卷 土 重 来, 在 经 历 磨 难 与 洗 礼 之 后 推
出 了 强 大 的Java 开 发 工 具JBuilder 3, 此 番 又 推 出 了
基 于Linux 的 免 费Java 开 发 环 境 — —JBuilder 3 Foundation。
美 国JavaWorld 近 日 对 该 集 成 开 发 环 境 进 行 了 测
试。 我 们 特 意 编 发 此 文, 以 飨 读 者。
---- Inprise 公 司 近 日 发 布 了 基
于Linux 平 台 免 费 的JBuilder3 Foundation Java 集 成 开 发 环
境(IDE)。 这 个IDE 是 为Java 开 发 人 员 编 写 的 纯Java 程
序。 产 品 名 称 中 的Foundation 意 味 着 这 是 一 个 基 本
的 产 品。 事 实 上 可 以 把 它 看 成 是 一 个 类 库,
它 提 供 了 编 译、 编 辑、 可 视 设 计 及 其 他 一 些
功 能。Inprise 公 司 鼓 励 公 司 及 个 人 以 JBuilder
Foundation 为 基 础, 编 制 符 合 自 己 需 求 的 扩 展 工
具。 目 前, Solaris 和Windows 企 业 版 的JBuilder 价 格 高 达2499
美 元, 在Linux 上 只 有 Foundation 版 本。
---- 曾 是PC 软 件 开 发 工 具 龙
头 企 业 的Inprise 经 历 了 几 年 的 低 迷。 早 年 公 司
赢 得 了Pascal 编 译 器 和 编 译 工 具 的 胜 利, 但 是 现
在 很 少 有 人 继 续 使 用Pascal 来 开 发 程 序 了。Inprise
公 司 在 早 期 与 微 软C,C + + 的 竞 争 中 赢 得 了 胜
利, 但 是 现 在 的 情 况 是 微 软 控 制 了Windows 应 用
程 序 界 面 和API, 最 后 使 得 微 软 的 Visual C + + 成
为 市 场 上 的 胜 利 者。
---- 而Inprise 的 情 况 又 怎 样 呢
? 购 买 其 他 公 司 产 品 的 行 为 被 证 明 是 一 个 昂
贵 的 失 败。 这 也 导 致 了 曾 经 叱 咤 风 云 的 编 程
工 具 制 造 商 活 在 往 昔 的 辉 煌 中, 公 司 甚 至 停
止 使 用 Borland 的 名 称, 而 以Inprise 取 而 代 之。
---- 但 是 现 在Inprise 回 来 了! 它
着 重 开 发 极 具 前 景 的Java 语 言 开 发 工 具。 具 有
讽 刺 意 味 的 是, 微 软 在Java 开 发 方 面 则 曾 痛 失
良 机, 这 帮 助 了Inprise JBuilder IDE 成 为 早 期Java 开 发
工 具 的 领 导 者 之 一。 时 至 今 日, 该IDE 只 有Windows
和Solaris 版 本。Corel 近 日 也 宣 布 计 划 以24.4 亿 美 元
收 购Inprise, 这 再 次 证 实 了Inprise 公 司 近 年 来 在Linux
上 所 付 出 的 努 力 是 多 么 的 成 功。
---- Sun 公 司 最 近 购 买 了 另 一
个 运 行 在Linux 上 的IDE:NetBean, 用 户 可 以 免 费 下 载NetBean。
也 许 是 为 了 对Sun 这 一 举 动 做 出 反 应, 也 或 许
是 低 端Java IDE 市 场 今 非 昔 比, 无 论 如 何 现 在 可
以 马 上 免 费 下 载JBuilder 3 Foundation。
Inprise 发 布 免 费 产 品 的 目 的
---- 给 教 育 者 和 学 生 提 供 一
个 可 以 轻 松 得 到 和 学 习Java 的 工 具。
---- 希 望 潜 在 客 户 能 使 用 并
评 估 公 司 的 企 业 和 专 业 产 品 的 核 心 技 术。
---- 告 诉 全 世 界Java 可 以 生 成
世 界 级 的 客 户 端 和 服 务 器 端 应 用。
---- 希 望 为 开 放 源 代 码 社 区
和 商 业 市 场 无 缝 提 供 创 建 崭 新java 工 具 的 新 起
点。
---- IDE 在Windows 和MacOS 世 界 中 广
为 流 行。 但 对 于Linux 的 编 程 人 员 来 说,emacs 文 本
编 辑 器 仍 是 主 流 的 开 发 环 境。 事 实 上,emacs 可
以 完 成 几 乎 你 能 想 像 到 的 任 何 事 情。 它 支 持
集 成 的 编 译 和 调 试; 支 持 查 找 在 线Linux 手 册;
甚 至 支 持 阅 读 电 子 邮 件 等 功 能。 那 么, 为 什
么 在Linux 上 仍 需 要IDE ? 许 多emacs 的 死 党 会 嘲 笑 像JBuilder
这 样 的 工 具, 但 是, 任 何 一 种 工 具 都 有 其 适
用 之 处, 而 世 上 没 有 一 种 工 具 可 以 胜 任 所 有
的 工 作。 开 发 者 真 正 需 要 的 是 一 个 针 对 开 发
者 本 人 最 富 成 效 的 开 发 工 具。
---- 对 于 任 何 一 个 熟 悉 可 视
化 开 发 工 具 的 Windows 用 户 来 说, 使 用JBuilder 会 得
心 应 手。 因 为 无 论 是 外 观, 还 是 表 现,Linux 的JBuilder
与Windows 的JBuilder 都 非 常 相 像。 使 用 它, 整 个 开 发
团 队 无 论 在 何 种 开 发 平 台 上, 都 可 以 使 用 同
一 种 开 发 工 具。
---- 即 使 对 不 太 喜 欢IDE 的
人, 也 该 使 用 JBuilder, 因 为 它 优 秀 的 教 程、 集
成 调 试 器、 扩 展 的 在 线Java API 文 档、 源 代 码 浏
览 工 具 以 及 强 大 的 功 能 仍 然 可 能 让 你 彻 底 改
变 对IDE 的 看 法。
下 载JBuilder 3 Foundation
---- 可 以 从Inprise 公 司 的 网 站 下
载Linux 版 本 的 JBuilder。 可 供 下 载 的 内 容 有:
---- 除 了 从 网 上 下 载, 用 户
也 可 以 选 择 随 Sun JDK1.2.2 光 盘 一 起 订 购, 价 格 非
常 低。 光 盘 包 含 了 作 为 文 档 的 JBuilder 的 站 点。
---- Linux 的JBuilder 需 要Sun 版 本
的JDK1.2.2。 用 户 同 样 可 以 从 网 上 下 载。Inprise 公 司
的 主 页 也 链 接 到 了 那 里。 建 议 用 户 最 好 采 用
光 盘 安 装, 因 为 包 括JDK、IDE 以 及 文 档, 用 户 至
少 要 下 载 几 十 兆 的 内 容。
---- 根 据Inprise 公 司 的 建 议,
运 行JBuilder 需 要 128MB 内 存 以 及 至 少150MB 的 硬 盘 空
间。 同 时,Inprise 建 议 最 好 采 用 Pentium Ⅱ 200 MHz 以 上
主 频 的 处 理 器。 对 于Linux 的 版 本,Inprise 推 荐 使
用Red Hat Linux 6.x 或Linux mandrake。
安 装Jbuilder
----因 为JBuilder 的 安 装 需 要 运
行Java, 所 以 在 安 装JBuilder 之 前, 必 须 确 认 已 经
安 装 了JDK, 并 且Java 命 令 已 经 被 添 加 到 命 令 路
径 中。 否 则 便 不 能 顺 利 地 完 成 安 装。
---- 运 行install.bin 脚 本 安 装JBuilder,
在 光 盘 上, 这 个 脚 本 位 于sol_linux/foundation/no_vm/ 路
径 下。 在 图 形 界 面 的 安 装 程 序 启 动 以 前, 系
统 会 询 问JDK 的 安 装 路 径, 并 且 把 所 有 脚 本 找
到 的Java 命 令 所 在 位 置 列 出 来。 在 我 们 的 测 试
机 器 上, 脚 本 正 确 地 找 到 了 测 试 人 员 安 装Java
的 位 置。 如 果 机 器 上 装 有 另 外 的JDK 版 本, 例
如, 在Red Hat 的Linux 环 境 中, 或 许 安 装 了kaffe Jva
runtime, 所 以 或 许 在 命 令 路 径 中 有 第 二 个Java 命
令。 这 里 就 要 小 心, 因 为JBuilder 需 要 的 是JDK1.2.2。
---- 与 大 多 数 商 业 软 件 一
样,JBuilder 光 盘 带 有 一 个 序 列 号 和 授 权 钥 匙。
这 也 是 光 盘 安 装 比 下 载 安 装 更 方 便 的 地 方,
用 户 不 必 联 系Inprise 公 司 便 可 获 得 软 件 的 授
权。
---- 安 装 程 序 运 行 一 个 类 似
向 导 的 程 序, 这 个 向 导 程 序 的 外 观 非 常 专
业, 它 可 以 一 步 步 地 指 导 你 完 成 整 个 安 装 过
程。
----默 认 情 况 下,JBuilder 安 装
在/usr/local/JBuilder30 中。 当 然, 也 可 以 任 意 指 定 安
装 路 径, 但 是 必 须 要 知 道 运 行IDE 所 需 的Java 的
位 置。 值 得 注 意 的 是, 安 装 程 序 并 不 安 装JBuilder
的 文 档。 安 装 文 档 是 单 独 的 步 骤, 在 安 装 光
盘 根 目 录 下 的 主HTML 文 档 中 有 详 细 叙 述。 相 关
描 述, 在Inprise 公 司 网 站 也 可 以 找 到。JBuilder 的 文
档 解 压 缩 后 大 约 会 占 用70MB 的 磁 盘 空 间。 它 包
含 了 基 本 的 Java API 文 档 和 大 量JBuilder 本 身 的 信
息。 如 果 要 安 装 文 档, 与 安 装 JBuilder 一 样 需 要
使 用Java。 所 以 仍 然 要 确 定Java 命 令 已 经 添 加 到
了 命 令 路 径 中, 然 后 运 行 脚 本install.bin。 在 安 装
光 盘 上, 可 以 在 光 盘 的 根 目 录 下 运 行 如 下 命
令:
---- sh sol_linux/docs/install.bin。
---- 也 存 在 如 下 情 况,Java 目
录 不 在root 用 户 的 命 令 路 径 中, 而 安 装 在 类 似/usr/local
这 样 权 限 受 到 限 制 的 目 录 下。 如 果 这 样, 就
只 能 以root 登 录, 增 加/usr/local/JBuilder30/doc 目 录 的 写
权 限, 然 后 以 普 通 用 户 登 录 安 装 文 档。 如 果
不 愿 意 扩 展root 的 路 径, 最 好 以 普 通 用 户 登 录
安 装 文 档。
---- 一 些 情 况 下 安 装 程 序 有
可 能 不 能 确 定 将JBuilder 安 装 到 了 哪 里, 所 以 必
须 键 入 路 径 名, 如/usr/local/JBuilder30 或 其 他 安 装 了JBuilder
的 路 径。 即 使 默 认 路 径 安 装 了JBuilder(root 登 录),
但 是 将 文 档 安 装 到 普 通 用 户 的 目 录 下, 安 装
程 序 仍 然 会 认 为 路 径 出 错。
---- 事 实 上, 以 上 混 乱 是 完
全 可 以 避 免 的。 以 普 通 用 户 登 录 后, 使 用su 改
变 为 超 级 用 户, 而 不 直 接 用root 登 录。 这 样,Java
命 令 就 可 以 很 好 地 工 作。 可 以 安 装Inprise 的 open
tools( 开 放 工 具) 类 的API 文 档。 这 些 类 有 有 趣 的
代 码, 包 括 一 系 列 对 很 多 应 用 程 序 很 有 用 的
向 导 类。Inprise 将 JBuilder 设 计 为 可 扩 展 的, 用 户
就 可 以 使 用Inprise 的open tools 扩 展 JBuilder 以 符 合 自
己 的 需 要。 更 多 的 关 于 扩 展 的 在 线 帮 助, 可
以 参 阅 安 装 光 盘 中 的PDF 文 件。
运 行Jbuilder
----
安 装 完 成 后, 开 始 运 行JBuilder。
这 里, 推 荐 用 户 安 装 全 部 文 档, 因 为 文 档 中
有 很 多 关 于 如 何 开 始 设 计 应 用 程 序 的 有 用 信
息。 如 果 已 将JBuilder 安 装 在 默 认 的 位 置
/usr/local/JBuilder30, 那 么 可 以 用 命 令:/usr/local/JBuilder30/bin/JBuilder
& 进 入 IDE。 如 果 安 装 路 径 为 非 默 认 路 径, 则
运 行 相 应 安 装 路 径 下 的 bin/JBuilder。 第 一 次 运 行
时,JBuilder 会 提 示 提 供 授 权 许 可(LICENSE)。 这
时, 便 需 要 光 盘 套 上 的 序 列 号 和 授 权 钥 匙。
如 果 没 有 光 盘, 就 必 须 与Inprise 公 司 联 系, 以 取
得 那 个 神 奇 的 号 码。 也 可 以 从
http://www.inprise.com/JBuilder/foundation/download/ 处 获 得。
---- 作 为 一 个 集 成 的 开 发 环
境,JBuilder 以 工 程(project) 的 形 式 来 协 同 工 作。 一
个 工 程 文 件 描 述 了 创 建 某 个 应 用 程 序 所 需 要
的Java 文 件, 还 包 括 一 系 列 配 置 信 息, 如 目 标
路 径、 编 译 选 项、 开 发 环 境 的 设 置 等。 从 传 统
的 开 发 角 度 来 看, 工 程 文 件 很 像makefile, 只 是
它 包 含 的 信 息 比makefile 多 很 多。 工 程 文 件 的 好
处 在 于 编 译 多 个 不 同 的 应 用 程 序 和 小 件 时,
只 需 在 工 程 文 件 中 切 换 即 可。 工 程 文 件 也 有
不 利 的 一 面, 用 户 不 再 仅 仅 是 编 辑 代 码, 而
是 被 限 制 在 一 个 可 能 对 用 户 工 作 不 十 分 合 适
的 工 程 中 工 作。 例 如, 有 些 用 户 时 常 从 不 同
的 工 程 文 件 中 调 用Java 源 代 码 到 文 本 编 辑 器
中, 只 是 看 看 代 码 而 已, 但 是 工 程 文 件 往 往
仍 然 会 对 这 种 工 作 进 行 干 预。
---- 第 一 步 工 作 是 创 建 一 个
新 的 工 程 文 件。JBuilder 提 供 了 很 多 教 程。 它 可
以 指 导 用 户 建 立 新 的 工 程 文 件、 改 变 类 的 名
称、 设 计 用 户 界 面 以 及 为 用 户 界 面 生 成 代 码
等。 当 然, 向 导 还 会 指 导 用 户 编 译 和 运 行 应
用 程 序, 例 如 应 用 程 序 向 导, 小 件 向 导 等。 小
件 向 导 帮 助 建 立 小 件。 向 导 自 动 创 建 一 个 Java
源 文 件 和 一 个HTML 文 件 用 以 发 布 小 件。 一 旦 使
用 了 这 些 向 导, 用 户 就 会 惊 讶 地 发 现, 使 用JBuilder
3 设 计 应 用 程 序 是 如 此 的 简 单。
---- JBuilder 的 欢 迎 窗 口 会 带
你 进 入 一 段 奇 妙 的 旅 程。 这 段 旅 程 的 第 一 站
展 示 给 用 户 的 是 程 序 不 同 的 消 息、 结 构、 工
程 和 内 容, 还 有 工 具 条 和JBuilder UI 上 的 状 态 信
息 区。 第 二 站 向 用 户 介 绍 如 何 控 制 开 发 环
境。 如 何 定 制 外 观, 设 置 快 捷 键 方 式, 配 色 方
案, 语 法 加 亮 等 等。
----例 如, 快 捷 键 的 设 置 可
以 在IBM COMMON USER ACCESS(CUA) 和emac 中 选 择。 在 线 帮 助
列 出 了 针 对 每 一 个 快 捷 键 的 设 置。
---- 另 外 还 有 一 站, 向 用 户
解 释 如 何 建 立 一 个 新 的 工 程、 编 辑 源 代 码、
编 译 工 程 文 件、 运 行 调 试 器、 设 计 用 户 应 用
程 序 界 面、 创 建 菜 单 以 及 使 用Swing 构 件 等。
---- 通 常JBuilder 也 会 打 开 一 个
叫 做AppBrower 的 窗 口, 它 能 够 轻 松 地 管 理 上 百 个package
及 上 千 个 源 文 件。
---- JBuilder 有 很 多 工 具, 包 括:
- 集 成 的 文 本 编 辑 器;
- 可 视 化 的 用 户 界 面 设 计 器;
- 集 成 的 调 试 器;
- 集 成 的javadoc 文 档 阅 读 器。
---- 所 有 工 具 在 扩 展 的 在 线
文 档 中 都 有 具 体 描 述。
编 辑Java 源 代 码
----
内 置 的 编 辑 器 是IDE 中 很 有
特 色 的 亮 点。 JBuilder 的 编 辑 器 使 用 不 同 的 颜 色
加 亮java 语 法。 如 上 所 述, 这 些 颜 色 可 以 事 前
定 制。 基 于Swing 文 本 包 的 编 辑 器 显 得 有 些 滞
后。 在 我 们 的 测 试 中, 编 辑 器 的 速 度 基 本 上
还 可 以, 但 是 在 完 成 一 些 如 打 开 和 关 闭 文 件
的 任 务 时, 编 辑 器 要 过 一 段 时 间 才 显 示 在 屏
幕 上。 例 如, 当 关 闭 文 件 时, 在 前 一 个 文 件 调
入 缓 冲 前, 有 明 显 的 延 时。
---- 其 实, 编 辑 器 的 主 要 好
处 并 不 在 自 身, 而 在 于 它 同JBuilder 其 他 部 分 的
联 系 上。 用 户 可 以 选 择 一 个 方 法 或 一 个 类,
单 击 鼠 标 右 键, 在 菜 单 中 选 择 浏 览 语 法, 就
可 立 即 看 到 代 码。 这 使 得 追 踪 源 代 码 变 得 非
常 容 易。JBuilder 甚 至 还 包 括 了 Java 的 源 代 码, 用
户 可 以 浏 览 定 义 在Java API 中 的 语 法。 例 如Swing 类
或Utility 类。
---- 除 了 编 辑 器,JBuilder 更 有
一 个 叫 CodeInsight 的 模 块, 它 可 以 通 过 使 用Ctrl +h
或Ctrl +Space 来 查 找 数 据 成 员 和 方 法 列 表, 使 用Ctrl
+Alt +Space 或Ctrl +Alt +h 查 找 在JBuilder 中 编 译 的 类
列 表。 单 击 回 车 键, 就 可 以 将 类 名 字 加 入 到
文 本 编 辑 器 中。 在 处 理 长 的 类 名 字 时, 这 个
功 能 非 常 有 用。 默 认 情 况 下 运 行JBuilder 时, 文
本 编 辑 器 出 现 在 最 前。 可 以 通 过 单 击 文 本 编
辑 器 下 面 的Tab 键 来 调 用 不 同 的 模 块。 例 如, 单
击“ 设 计” 页, 就 调 用 了 可 视 用 户 界 面 设 计 器
进 入 设 计 模 式。 在 设 计 模 式 环 境 下, 用 户 可
以 从 面 板 中 选 择 用 户 界 面 构 件, 像 按 钮、 标
签 等。 可 供 选 择 的 构 件 使 用 标 准JDK1.2 或 更 高 版
本 的Swing 工 具 包。 用 户 还 可 以 把 JavaBean 集 成 到 面
板 上, 以 供 随 时 使 用。
---- 一 些 可 视 化 的 设 计 工 具
允 许 用 户 将 按 钮 等 构 件 放 到 屏 幕 上, 并 且 放
置 的 位 置 就 是 以 后 应 用 程 序 中 展 现 的 位 置。
但 是 一 旦 将 这 个 应 用 程 序 移 至 其 他 系 统 中,
如 果 另 一 个 系 统 没 有 使 用 与 以 前 系 统 相 同 的
字 体, 就 会 出 现 麻 烦, 整 个 界 面 看 上 去 面 目
全 非。JBuilder 与 上 面 提 到 的 可 视 化 设 计 工 具 不
同, 它 的GUI 设 计 器 不 仅 允 许 用 户 在 绝 对 位 置
放 置 构 件, 还 允 许 使 用Swing 和AWT 布 局 管 理 器 放
置 构 件。 这 就 避 免 了 上 述 情 况 的 产 生。
---- 用 户 可 以 定 制JBuilder。 包
括 文 本 编 辑 器 将 大 括 号 放 在 哪 里 开 始 一 个 程
序 块。 用 户 可 以 使 用 结 束 行 格 式, 例 如:
public void doMyStuff() {
if (condition) {
}
}
---- 也 可 以 使 用 将 大 括 号 放
在 一 行 开 始 处 的 方 式:
public void doMyStuff()
{
if (condition)
{
}
}
---- 这 种 方 便 的 设 置 可 以 针
对 每 个 工 程 改 变。 除 了 每 个 工 程 的 设 置, 还
可 以 通 过IDE 选 项 定 制 个 性 化 的 开 发 环 境。
---- 值 得 一 提 的 是JBuilder 的 代
码 模 板。 它 可 以 帮 助 用 户 更 快 地 进 入 正 常 的java
格 式。 例 如,try-catch 块:
try {
|
}
{
}
---- 这 个 代 码 模 板 把 光 标 放
在try 块 的 中 间, 用 户 只 要 在 光 标 处 开 始 代 码
即 可。 用 户 可 以 改 变 模 板 使 之 更 适 合 自 己 的
风 格。
使 用 集 成 调 试 器
----
与 大 多 数IDE 一 样,JBuilder 包
含 了 一 个 集 成 的 调 试 器。 打 开 调 试 信 息 设
置, 编 辑 完 代 码 后, 调 试 代 码。 调 试 器 会 自 动
步 进 整 个 程 序, 一 旦 有 问 题, 帮 助 定 位 问 题
所 在。 它 采 取 了 高 级 的dependency checker 系 统, 因 此
获 得 了 更 快 的 编 译 速 度。
结 论
---
与 大 多 数Java 工 具 一 样,Foundation
工 具 并 不 支 持 企 业Java 开 发 的 所 有 需 要。 例 如JBuilder
不 支 持 用 以 程 序 间 通 信 的CORBA, 不 支 持 数 据 库
存 取 的JDBC, 不 支 持EJB。 如 果 需 要 这 些 支 持, 用
户 还 得 准 备 购 买 尚 未 发 布 的Linux 高 端JBuilder 版
本。
|