部署 Java Web Start 应用程序

要部署 Java Web Start 应用程序,请首先编译源代码,将其打包为 JAR 文件,然后对 JAR 文件进行签名。

通过使用 Java 网络启动协议(JNLP)启动 Java Web Start 应用程序。因此,您必须创建一个 JNLP 文件来部署您的应用程序。

Deployment Toolkit 脚本包含有用的 JavaScript 函数,可用于在网页上部署 Java Web Start 应用程序。

如果您不熟悉这些部署技术,请先阅读Deployment In-Depth类,然后再 continue。

以下是打包和部署应用程序的一些分步说明。动态树演示应用程序用于说明 Java Web Start 应用程序的部署。您可能需要设置构建脚本以执行以下某些步骤。

单击以下“启动”按钮以启动“动态树演示”应用程序。

要使此页面正常运行,需要启用 JavaScript 的浏览器。

Note:

如果看不到示例正在运行,则可能需要在浏览器中启用 JavaScript 解释器,以便 Deployment Toolkit 脚本能够正常运行。

  • 编译应用程序的 Java 代码,并确保所有类文件和资源(例如图像)都位于单独的目录中。

在“动态树演示”应用程序中,已编译的类位于build/classes/webstartComponentArch目录中。

  • 创建一个文本文件,其中包含小应用程序需要的任何 JAR 文件清单属性。

对于 DynamicTree 演示 Servlets,在build/classes目录中创建一个名为mymanifest.txt的文件,并添加PermissionsCodebaseApplication-Name属性。Servlets 不需要访问用户的系统资源,因此请使用sandbox作为权限。使用您将从中加载示例代码域的域,例如myserver.com。将以下属性添加到mymanifest.txt文件。

Permissions: sandbox
Codebase: myserver.com
Application-Name: Dynamic Tree Demo

还可以使用其他清单属性来限制 Servlets 仅使用受信任的代码,并为需要在特权 Java 代码和沙箱 Java 代码之间进行调用或者具有调用该 Servlets 的 JavaScript 代码的 Servlets 提供安全性。请参阅使用清单属性增强安全性类,以了解有关可用清单属性的更多信息。

  • 创建一个包含应用程序的类文件和资源的 JAR 文件。将清单属性包括在上一步中创建的mymanifest.txt文件中。

例如,以下命令使用build/classes/webstartComponentArch目录中的类文件和build/classes目录中的清单文件创建一个 JAR 文件。

% cd build/classes
% jar cvfm  DynamicTreeDemo.jar  mymanifest.txt webstartComponentArch

请参阅JAR 文件中的打包程序类,以了解有关创建和使用 JAR 文件的更多信息。

  • 在 Servlets 的 JAR 文件上签名,并在签名上加上时间戳。使用由受信任的证书颁发机构颁发的有效的当前代码签名证书,可以为您的用户提供安全运行 Servlets 的保证。

有关更多信息,请参见签名 JAR 文件类。

如果要使用签名的 JNLP 文件来提高安全性,请按照下一步所述创建 JNLP 文件,并在对 JAR 文件进行签名之前将其包含在 JAR 文件中。有关信息,请参见《 Java 平台标准版部署指南》中的签名的 JNLP 文件

  • 创建一个描述如何启动应用程序的 JNLP 文件。

这是用于启动动态树演示应用程序的 JNLP 文件。不需要此应用程序的权限,因此它可以在安全沙箱中运行。 dynamictree_webstart.jnlp的来源如下:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase=
"https://docs.oracle.com/javase/tutorialJWS/samples/deployment/webstart_ComponentArch_DynamicTreeDemo" 
    href="dynamictree_webstart.jnlp">
    <information>
        <title>Dynamic Tree Demo</title>
        <vendor>Dynamic Team</vendor>
    </information>
    <resources>
        <!-- Application Resources -->
        <j2se version="1.7+"
              href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="DynamicTreeDemo.jar"
            main="true" />

    </resources>
    <application-desc
         name="Dynamic Tree Demo Application"
         main-class=
           "webstartComponentArch.DynamicTreeApplication"
         width="300"
         height="300">
     </application-desc>
     <update check="background"/>
</jnlp>

JNLP 文件的结构描述了 JNLP 文件的语法和选项。

Note:

部署将至少在 Java SE 6 update 18 发行版或更高版本上运行的 Java Web Start 应用程序时,codebasehref属性是可选的。部署将与 Java Runtime Environment 软件的早期版本一起运行的 Java Web Start 应用程序时,必须指定codebasehref属性。

  • 创建将从中启动应用程序的 HTML 页面。调用 Deployment Toolkit 函数来部署 Java Web Start 应用程序。

在该示例中,动态树演示应用程序部署在JavaWebStartAppPage.html中。

<body>
    <!-- ... -->
    <script src=
      "https://www.java.com/js/deployJava.js"></script>
    <script>
        // using JavaScript to get location of JNLP
        // file relative to HTML page
        var dir = location.href.substring(0,
            location.href.lastIndexOf('/')+1);
        var url = dir + "dynamictree_webstart.jnlp";
        deployJava.createWebStartLaunchButton(url, '1.7.0');
    </script>
    <!-- ... -->
</body>

如果不确定final用户是否在浏览器中启用了 JavaScript 解释器,则可以通过创建指向 JNLP 文件的链接来直接部署 Java Web Start 应用程序,如下所示:

<a href="/absolute path to JNLP file/dynamictree_webstart.jnlp">Launch Notepad Application</a>

如果使用直接链接部署 Java Web Start 应用程序,则无法利用 Deployment Toolkit 函数提供的其他检查。有关详细信息,请参见“深入部署”类中的部署 Java Web Start 应用程序

  • 将应用程序的 JAR 文件,JNLP 文件和 HTML 页面放置在适当的文件夹中。

对于此示例,将DynamicTreeDemo.jardynamictree_webstart.jnlpJavaWebStartAppPage.html放在本地计算机或 Web 服务器上的同一目录中。首选 Web 服务器。要从本地计算机运行,必须将应用程序添加到 exception 站点列表中,该列表由 Java 控制面板的“安全性”选项卡进行 管理。

  • 在浏览器中打开应用程序的 HTML 页面以查看该应用程序。出现提示时,同意运行该应用程序。检查 Java 控制台日志中是否有错误和调试消息。

下载源代码用于“动态树演示”示例,以进一步进行实验。