Java 2 软件开发工具包
自从四年前推出以来,Sun 的 Java 技术已经出现在几乎所有尺寸和类型的计算机系统上,从 IBM 的 MVS 驱动的大型机到 3Com 的 Palm 掌上电脑。
新版本的 Java 开发工具包和 Java 虚拟机首先在 Sun 的系统和 Microsoft Windows 上提供,但可能需要几个月的时间才能在其他平台上出现。Sun 的 Java 软件部门仅为 Solaris 和 Windows 生产参考实现 only,并将源代码许可给希望将 JDK 或 JVM 移植到他们自己的硬件和操作系统的其他系统供应商。
一些供应商,如 IBM,几乎立即准备好他们的新 Java 版本端口。不幸的是,Apple Macintosh 等平台的用户不得不长时间等待最新的 JDK。Linux 用户直到 1997 年年中才看到 JDK 1.1,尽管 Sun 在 1996 年 12 月就推出了它,而且他们一直在热切等待自去年 11 月以来的 Java 2。
Sun 在与主要系统供应商安排 Java 许可协议方面没有问题,但他们确实花了一段时间才为广泛分散的 Linux 社区确定被许可人。他们最终将 JDK 源代码许可给了 Steve Byrne 和 Blackdown Java-Linux 移植团队,这是一个 Linux 开发者团队。
Blackdown 团队最近发布了 Java 2 SDK 的预览版,此前他们使用 Java 兼容性工具包对其进行了广泛的测试,该工具包包含超过 16,000 个测试,用于验证端口是否符合已发布的 Java 语言和运行时规范。
您可以从 Blackdown 镜像网站下载适用于 Linux 的 Java 2 SDK,网址为 http://www.blackdown.org/。请注意,Sun 最近将该软件的名称从 JDK 1.2 更改为 Java 2 SDK,尽管许多在线资料仍然使用较早的名称。压缩后的 SDK 接近 24MB,因此如果可能,请使用快速网络连接。Java 2 的完整文档与 SDK 分开打包。直接从 Sun 的网站下载:java.sun.com/products/jdk/1.2/docs/index.html。
安装包括将 jdk1.2pre-v2.tar.bz2 文件压缩包解压缩并提取到您的主目录或其他位置。使用命令
bzip2 -d jdk1.2pre-v2.tar.bz2 tar xvf jdk1.2pre-v2.tar
为了使用 JDK,您必须拥有包含 GNU C 库 glibc2 版本的 Linux 发行版。大多数发行版,如 Red Hat 5.2,都包含此库,也称为 libc6。
安装完成后,只需设置您的 PATH 环境变量以包含 JDK 的 bin 目录,您就可以开始使用了
export PATH={JDK-install-directory}/jdk1.2/bin:$PATH
要验证您的安装,请输入
java -versionJVM 应该运行并将其版本报告为 “java version 1.2”,以及有关实现的附加信息。
Java 2 SDK 包含几个用于开发和测试的工具,包括 javac 编译器、jar Java 存档管理器(其工作方式类似于 tar 命令)以及用于测试 applet 的 appletviewer 程序。“Applet” 是旨在浏览器中运行的 Java 程序;Java “应用程序” 类似于任何其他程序,不需要浏览器即可运行。当前版本的 Netscape 和 Internet Explorer 不直接支持 Java 2,因此您需要使用 appletviewer 来测试您的 applet。
Java 2 SDK 附带一个编译器,但不包含交互式开发环境 not。当然,您可以使用 vi 或 emacs 创建您的源文件,然后从命令行编译并运行它们。例如,创建包含以下行的文件 HelloLinux.java
public class HelloLinux { public static void main(String[] args) { System.out.println("Hello, Linux!"); } }
使用命令 javac HelloLinux.java 编译您的程序。编译器将生成文件 HelloLinux.class,您可以使用命令 java HelloLinux 运行它。如果您在尝试编译和运行 Java 程序时遇到问题,请检查您的 PATH 和 CLASSPATH 环境变量。CLASSPATH 列出了 JVM 查找类文件的目录。如果您的文件或单独安装的 Java 库所需的类文件未在 CLASSPATH 中引用,则 JVM 无法找到并运行它们。
Java 2 SDK 包含 Java Foundation Classes,也称为 “Swing” 类库。此库扩展了 Java 的原始抽象窗口工具包,用于构建图形用户界面。Swing 库为 GUI 开发提供了丰富的组件集。jdk1.2/demo/jfc 目录包含 100 多个示例源文件,演示了该库的功能,包括 SwingSetApplet 演示,该演示在一个大型 applet 中展示了 all 组件的工作情况。SwingSetApplet 包含完整的源代码。
图 1. SwingSetApplet
查看 jdk1.2/demo/jfc/Java2D 目录,您会找到非凡的 Java2DemoApplet,它展示了 Java 的 2-D 图像 API,用于控制图像渲染、字体、动画和打印。
Java 平台最重大的变化之一是安全性。早期版本对 Java applet 和应用程序的处理方式不同,允许应用程序不受限制地访问任何系统资源,同时将远程加载的 applet 限制为全有或全无的 “Sandbox” 模型。旧安全模型中的 applet 无法访问客户端系统资源,也无法连接到其来源主机以外的任何系统。这为远程加载的可执行代码提供了强大的安全模型,但也限制了 applet 的实用性。
Java 2 的新安全模型基于可配置的策略文件,该文件可以为每个用户、组和程序组件定义安全 domains。此文件称为 codeBase,它告诉 JVM 程序必须加载到哪里才能执行,并使用数字签名验证程序的来源,从而确定谁可以运行该程序。
您可以在 jdk1.2/jre/lib/security 目录中找到所有用户的示例全局策略文件。此文件可以自定义,并且可以指示 JVM 对所有代码执行权限使用策略文件。尤其需要注意的重要一点是,程序不需要修改即可控制其执行;JVM 和策略文件确定什么可以运行以及谁可以运行它。请访问 http://java.sun.com/security/ 查看 Java 2 安全性的详细信息和示例。
如果您正在为 Linux 寻找专业的 Java 2 程序开发工具,那么您再次受制于工具开发人员,他们通常首先为 Windows 发布他们的产品,然后再为其他平台发布。但是,如果开发工具是用 100% Pure Java 编写的,那么您就很幸运了。Blackdown 的 Java Tools for Linux 链接列表列出了十几个 Java IDE,包括一些已更新为可与 Java 2 一起使用的 IDE。查看 NetBeans,网址为 http://www.netbeans.com/,Together/J,网址为 http://www.togetherj.com/,了解两种优秀的编程工具。
Sun 已将其他 API 的源代码许可给 Blackdown 团队,包括 Java 3-D、Java Media Framework、Java Advanced Imaging 和 Java Sound 的代码。此外,Sun 现在正在根据其社区源代码许可模型提供大部分 Java 核心技术的源代码,包括新的 Jini 软件。虽然与 GNU 通用公共许可证不太相同,但此模型应使 Java API 更容易移植到 Linux 和其他平台。
Linux 开发人员已经在努力调整他们的解决方案以适应 Java 2。例如,Douglas Lau 和 Trent Jarvi 已经实现了 Java Communications API,用于访问串行和并行端口。您可以从 http://jarvi.ezlink.com/rxtx/ 下载必要的库。
如果您是 Java 编程新手,您的背景将决定您学习它的速度。已经通过 C++ 或 Smalltalk 体验过对象概念的程序员通常可以在几周的学习和实践后精通 Java。如果您是 “对象挑战” 的 C 或 FORTRAN 程序员,您将需要帮助学习使用对象进行思考和设计;参加面向对象编程课程将帮助您入门。初学者应该学习 Sun 的 Java Tutorial 或 Bruce Eckel 的 Thinking in Java,而经验丰富的对象程序员可以直接开始使用 Horstmann 和 Cornell 的 Core Java。
我想不出比 Linux 更好的 Java 平台和用户社区了。现在 Java 2 已经可用,凭借其先进的 GUI 功能和灵活的安全模型,我预计将会出现一波新的有趣的 Java 程序。Blackdown 团队的努力值得称赞。
