封装应用程序
现在,您应该已经对 JWS 和 JNLP 文件有了基本的理解。您应该已经建立了一个 Web 服务器,可以通过它来发布产品的文件和 JNLP 文件,并且,您应该可以从 Eclipse IDE 中启动您的工作产品。完成所有这些任务之后,您可以构建一个包装器特性,并使用它来发布您的产品。
创建包装器特性
包装器特性仅仅是一个由两个文件组成的特性项目,每个文件都包含到产品插件和运行产品插件所有的任何插件和特性的引用。要添加新包装器特性,选择 File > New > Project。然后,在 Select a wizard 窗口中,展开 Plug-in Development 并选择 Feature Project,如图 12 所示。
图 12. 创建新特性项目
在 Feature Properties 窗口中,键入项目名称、特性 ID、版本和提供商信息,如图 13 所示。然后,单击 Next。
图 13. 编辑特性属性
在 Referenced Plug-ins and Fragments 窗口中,如图 14 所示,选择 Initialize from a launch configuration,然后从列表中选择产品配置文件的名称(例如 SimpleApp.product)。完成后,单击 Finish。
图 14. 选择产品配置
 |
创建密钥库
要通过 JWS 部署插件和特性,您必须对 JAR 进行签名。对 JAR 进行签名需要一个密钥库,您可以使用 Java 软件开发包 (JDK) 随带的 Java keytool 来生成它。有关创建密钥库的更多信息,请参见 参考资料 小节。
|
|
新的特性将包含两文件:build.properties 和 feature.xml。feature.xml 文件有一个与图形产品配置和插件编辑器相似的图形编辑器。打开 feature.xml 文件的图形编辑器。
在 Plug-ins 选项卡中,确保您的产品插件列于其中。此外,验证 org.eclipse.equinox.launcher 插件也列于其中。在 Features 选项卡中,添加您插件或特性需要的任何额外特性。如果您急于使用 JWS 查看您的产品,则可以选择所有项目;这不会造成任何损害,仅仅会影响您应用程序的目录大小。但是,在真实世界的产品中,您应该跟踪依赖关系,以确保下载的文件尽可能小。
导出包装器特性
选择插件和特性之后,您可以将特性包装器项目导出到某个目录中。要导出项目,选择 File > Export。在 Select 窗口中,展开 Plug-in Development,然后单击 Deployable Features,如图 15 所示。单击 Next。
图 15. 创建可部署的特性
现在:
- 在 Deployable features 窗口中选择您的特性,如图 16 所示。
图 16. 选择要部署的特性
- 在 Destination 选项卡中,单击 Directory 并键入要在其中发布文件的目录的名称。该目录必须位于网络文件下,以便可以通过您在 Java Web Start 选项卡中提供的 URL 来访问它。
- 在 Options 选项卡中,选择 Package as individual JAR archives。
- 在 JAR Signing 选项卡中,选择 Sign the JAR archives using a keystore。然后,浏览到密钥库位置并键入别名(alias)和密码。
注意:如果您没有密钥库,请参见 参考资料 小节,获取这方面的信息。
- 在 Java Web Start 选项卡中,选择 Create JNLP manifests for JAR archives。
- 将 Site URL 更新为 JWS 目录的基本 URL。在浏览器中访问此 URL 时,它应该会访问您在 Destination 选项卡中输入的目录。
图 17. 设置 JWS 属性

更新了与特性部署相关的信息后,单击 Finish。Eclipse 将导出所提供目录中的信息。根据所选择的插件和特性的数量,以及您的硬件资源,它可能需要花费一些时间来导出特性。当 Eclipse 完成此任务后,所提供的目录中将包括两新目录:features 和 plugins。您特性的 JNLP 文件将包含在 features 目录中。清单 3 给出了 features 目录中的内容的一个例子。
Listing 3. features 目录的内容
$ ls
com.nathanagood.examples.simpleApp.feature_1.0.0.jar
com.nathanagood.examples.simpleApp.feature_1.0.0.jnlp
org.eclipse.equinox.p2.user.ui.source_1.0.1.r34x_v20080721-7d-7OEMsLAz-vTBJ.jar
org.eclipse.equinox.p2.user.ui.source_1.0.1.r34x_v20080721-7d-7OEMsLAz-vTBJ.jnlp
org.eclipse.equinox.p2.user.ui_1.0.1.r34x_v20080721-7d-7OEMsLAz-vTBJ-ZHQaF155CE.jar
org.eclipse.equinox.p2.user.ui_1.0.1.r34x_v20080721-7d-7OEMsLAz-vTBJ-ZHQaF155CE.jnlp
org.eclipse.help.source_1.0.1.R34x_v20080827-7r7xEIxEI6Zu5nEqN7M3UBpglaat.jar
org.eclipse.help.source_1.0.1.R34x_v20080827-7r7xEIxEI6Zu5nEqN7M3UBpglaat.jnlp
or,.eclipse.help_1.0.1.R34x_v20080827-7r7xEIxEI6Zu5nEqN7M3UBpglaat.jar
org.eclipse.help_1.0.1.R34x_v20080827-7r7xEIxEI6Zu5nEqN7M3UBpglaat.jnlp
org.eclipse.platform.source_3.4.1.r341_v20080731-9I96EiDElYevwz.jar
org.eclipse.platform.source_3.4.1.r341_v20080731-9I96EiDElYevwz.jnlp
org.eclipse.platform_3.4.1.r341_v20080731-9I96EiDElYevwz-p1bP5z-NlAaP7vtX6Utotqsu.jar
org.eclipse.platform_3.4.1.r341_v20080731-9I96EiDElYevwz-p1bP5z-NlAaP7vtX6Utotqsu.jnlp
org.eclipse.rcp.source_3.4.100.r341_v20080814-989JESIEdAciFYfkZZsBfSwQ2341.jar
org.eclipse.rcp.source_3.4.100.r341_v20080814-989JESIEdAciFYfkZZsBfSwQ2341.jnlp
org.eclipse.rcp_3.4.100.r341_v20080814-989JESIEdAciFYfkZZsBfSwQ2341.jar
org.eclipse.rcp_3.4.100.r341_v20080814-989JESIEdAciFYfkZZsBfSwQ2341.jnlp
|
将包装器特性成功导入到可从 Web 服务器访问的目录之后,下一步是构建应用程序的主 JNLP 文件。
|