文档

Java™ 教程
隐藏目录
部署Java Web Start应用程序
路径:部署
课程:Java Web Start

部署Java Web Start应用程序

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

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

部署工具包脚本包含一些有用的JavaScript函数,可以用来在网页上部署Java Web Start应用程序。

如果你对这些部署技术不熟悉,请在继续之前阅读深入部署教程。

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

点击以下启动按钮来启动动态树演示应用程序。


注意:如果你看不到示例正在运行,可能需要在你的浏览器中启用JavaScript解释器,以便部署工具包脚本能够正常运行。
  1. 编译你的应用程序的Java代码,并确保所有的类文件和资源(如图片)放在一个单独的目录中。

    在动态树演示应用程序中,编译后的类文件放在build/classes/webstartComponentArch目录中。

  2. 创建一个文本文件,其中包含你的小程序所需的任何JAR文件清单属性。

    对于动态树演示小程序,创建一个名为mymanifest.txt的文件,放在build/classes目录中,并添加PermissionsCodebaseApplication-Name属性。该小程序不需要访问用户的系统资源,所以使用sandbox作为权限。使用将加载该示例的域名作为代码库,例如myserver.com。将以下属性添加到mymanifest.txt文件中。

    Permissions: sandbox
    Codebase: myserver.com
    Application-Name: 动态树演示
    

    其他的清单属性可用于限制小程序只能使用受信任的代码,并为需要在特权Java代码和沙盒Java代码之间进行调用,或者包含调用小程序的JavaScript代码的小程序提供安全性。请参阅通过清单属性增强安全性教程,了解更多可用的清单属性。

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

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

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

    请参阅在JAR文件中打包程序教程,了解更多关于创建和使用JAR文件的内容。

  4. 为你的小程序签名JAR文件并对签名进行时间戳。使用由可信任的证书颁发机构颁发的有效、当前的代码签名证书,以向用户保证可以安全运行该小程序。

    请参阅签名JAR文件教程了解更多信息。

    如果你想要使用带有安全性的已签名JNLP文件,需要在签名JAR文件之前创建JNLP文件并将其包含在JAR文件中。请参阅Java平台标准版部署指南中的已签名JNLP文件

  5. 创建一个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>动态树演示</title>
            <vendor>动态团队</vendor>
        </information>
        <resources>
            <!-- 应用程序资源 -->
            <j2se version="1.7+"
                  href="http://java.sun.com/products/autodl/j2se"/>
            <jar href="DynamicTreeDemo.jar"
                main="true" />
    
        </resources>
        <application-desc
             name="动态树演示应用程序"
             main-class=
               "webstartComponentArch.DynamicTreeApplication"
             width="300"
             height="300">
         </application-desc>
         <update check="background"/>
    </jnlp>                                   
    
    JNLP文件的结构描述了JNLP文件的语法和选项。

    注意: 当部署至少使用Java SE 6更新18或更高版本的Java Web Start应用程序时,codebasehref属性是可选的。当部署使用较早版本的Java Runtime Environment软件运行的Java Web Start应用程序时,必须指定codebasehref属性。
  6. 创建HTML页面,从中启动您的应用程序。调用部署工具包函数以部署Java Web Start应用程序。

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

    <body>
        <!-- ... -->
        <script src=
          "https://www.java.com/js/deployJava.js"></script>
        <script>
            // 使用JavaScript获取相对于HTML页面的JNLP文件位置
            var dir = location.href.substring(0,
                location.href.lastIndexOf('/')+1);
            var url = dir + "dynamictree_webstart.jnlp";
            deployJava.createWebStartLaunchButton(url, '1.7.0');
        </script>
        <!-- ... -->
    </body>
    

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

    <a href="/JNLP文件的绝对路径/dynamictree_webstart.jnlp">启动记事本应用程序</a>
    

    如果您使用直接链接部署Java Web Start应用程序,您将无法利用部署工具包函数提供的额外检查。有关详细信息,请参阅部署深入课程中的部署Java Web Start应用程序

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

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

  8. 在浏览器中打开应用程序的HTML页面以查看应用程序。在提示时同意运行应用程序。检查Java控制台日志以获取错误和调试消息。

下载动态树示例的源代码以进行进一步的实验。


上一页: 检索资源
下一页: 设置Web服务器