您的位置:寻梦网首页编程乐园Java天地小龙亭之JSP实践之旅
小龙亭之JSP实践之旅
主页入门EJBJ2EE平台JSP编程译文工具JavaAppServerWeb数据库XML手记小亭

Java2实现Applet数字签名
企业级Java介绍
Java之教授篇
Java白皮书
JNDI技术白皮书
Servlet介绍
Servlet2.1规范
Java在C/S结构中的应用
Java中汉字问题分析与对策
利用Java实现视频点播服务器
Java多线程设计
Java反编译
java IDL技术
数据库缓冲池
ASP调用Servlet
Applet介绍
Applet和Servlet 4种通讯方法
Applet调用jdbc
XML+Servlet建在线系统
java数据库查询的表格显示
开发工具篇
Forte for Java介绍
Jbuilder4新功能
Jbuilder介绍
Jbuilder3测试报告
VAJ开发servlets

计算机世界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 版 本。