Board logo

标题: 使用 Java Web Start 部署 SWT 应用程序(1) [打印本页]

作者: look_w    时间: 2018-5-7 16:51     标题: 使用 Java Web Start 部署 SWT 应用程序(1)

SWT 概述现在把标准窗口小部件工具箱(SWT)引入开发社区是最恰当不过了。虽然到目前为止,Sun的 Java 基础类(JavaFoundation Classes,JFC)一直能让客户机端应用程序的开发人员感到满意,但仍然有许多开发人员出于各种原因不愿使用 SWT。对于许多开发人员和架构设计师来说,能够开发象传统本机桌面应用程序那样以可视化方式显示、操作和执行的客户机端 Java 应用程序的梦想似乎还很遥远。
然而到了 2001 年年中,Eclipse 项目突然出现在这幅开发“视野”之中。最初,人们认为 Eclipse 项目只是Java 的开放源码集成开发环境(IDE);但是该项目涉及的范围更广。在开发 Eclipse 期间,SWT 工具箱诞生了。SWT  工具箱类似于 JFC 和其“堂兄弟”抽象窗口工具箱(Abstract Window Toolkit,AWT),它向开发人员提供了一组窗口小部件。然而,SWT 与其它工具箱之间的主要区别在于SWT 使用操作系统的底层 GUI 窗口小部件。这种方法向 Java开发人员提供了跨平台的 API 来实现“外观”象本机桌面应用程序的解决方案。
Java Web Start 概述如果没有这些合适的工具,不论用什么语言,传统桌面应用程序的部署和维护对于开发人员都可能是主要的头疼问题。即使是最有效的支持部门,一想到发布新版本的软件时必须检查更新每台工作站,也不能不让他们感到头痛。为了方便 Java 开发人员的分发和维护需求,Sun Microsystems几年前引入了 Java Web Start。这一技术很大程度上简化了最终用户工作站上 Java 应用程序的部署、维护和更新。
将 Web 浏览器用作启动应用程序的最初工具,Java Web Start 是一个在本地安装的帮助应用程序,它包含在  Sun 的 Java 运行时环境中。每当用户访问 Java 网络启动协议(Java Network LaunchingProtocol,JNLP)文件时,都自动将该应用程序下载到用户的工作站,然后该应用程序开始运行。整个过程几乎不需要与最终用户进行交互,这大大简化了分发应用程序的工作。请参考位于本文末尾的 以获取更多关于 Java Web Start 的信息。      
文件查看器应用程序在我们了解如何用 Java Web Start 部署 SWT 应用程序的实现细节之前,让我们先看一下将要部署的应用程序。本文所包含的这个应用程序是由 Eclipse 项目提供的一个示例应用程序。正如图 1所示,该应用程序是一个简单的跨平台的文件查看器,它使用户能够浏览自己硬盘上的文件和文件夹。
图 1. 运行在 Windows XP 上的文件查看器


为演示 SWT 和 Java Web Start 的跨平台能力,已经将所包含的这个独立的示例应用程序打包,以便在 Microsoft Windows 和 Red Hat Linux 上运行。
环境需求在本文末尾可以下载这篇文档中所使用的代码。为了用 Java Web Start完整地测试这个文件查看器应用程序,您的环境必须符合以下最低要求(请参阅 中的下载链接):      
虽然一直留心使 Ant 构建脚本可以跨平台使用,但是我们只在 Microsoft Windows XP 和 Red Hat Linux 8 操作系统上测试和验证了文件查看器应用程序。此外,这里假定 Tomcat 运行在您本地工作站上,并且运行在端口8080 上。让我们从安装、构建和运行该示例应用程序开始。
安装该文件查看器应用程序要安装文件查看器应用程序,请完成以下步骤:
安全性和代码签名与 AWT 和 JFC 不同,SWT 与操作系统的本机窗口环境紧密集成在一起。SWT 使用系统库来管理自己的与平台无关的API 和底层操作系统之间的集成。缺省情况下,运行在 Java Web Start 下的应用程序运行在受限的沙箱内。这个环境控制着对资源(譬如工作站的文件系统、系统库和其它资源)的访问。由于 SWT需要在缺省的沙箱之外运行来装入系统库,因此用 Java Web Start 部署的所有 JAR文件必须经过数字签名。因为我们不准备将该应用程序部署给广大的用户,所以创建了一个自签名的测试证书。
如果您准备将 SWT 应用程序放入生产环境,那么我们强烈建议您从认证中心(如 Thawte 或VeriSign)获取一个证书。
创建自签名的证书要创建自签名的测试证书,请完成以下步骤:





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0