# 部署 Applet

> 原文： [https://docs.oracle.com/javase/tutorial/deployment/applet/deployingApplet.html](https://docs.oracle.com/javase/tutorial/deployment/applet/deployingApplet.html)

要部署 Java 小程序，首先编译源代码，将其打包为 JAR 文件，然后对 JAR 文件进行签名。

Java applet 可以通过两种方式启动。

*   您可以使用 Java 网络启动协议（JNLP）启动小程序。使用 JNLP 启动的 Applet 可以访问功能强大的 JNLP API 和扩展。
*   或者，您可以通过直接在 applet 标记中指定 applet 的启动属性来启动 applet。但是，这种部署 applet 的旧方法对 applet 施加了严格的安全限制。

Deployment Toolkit 脚本包含有用的 JavaScript 函数，可用于在网页中部署 applet。

如果您不熟悉这些部署技术，请在继续操作之前查看[深入部署](../deploymentInDepth/index.html)课程。

以下是打包和部署 applet 的一些分步说明。 Dynamic Tree Demo applet 用于说明 applet 部署。您可能希望设置构建脚本以执行以下某些步骤。

<noscript>A browser with JavaScript enabled is required for this page to operate properly.</noscript>

* * *

**Note:**  If you don't see the example running, you might need to enable the JavaScript interpreter in your browser so that the Deployment Toolkit script can function properly.

* * *

1.  Compile your applet's Java code and make sure all class files and resources such as images are in a separate directory.

    对于 DynamicTree Demo applet，编译的类放在`build/classes/appletComponentArch`目录中。

2.  Create a text file that contains any JAR file manifest attributes that your applet needs.

    对于 DynamicTree 演示小程序，在`build/classes`目录中创建名为`mymanifest.txt`的文件，并添加`Permissions`，`Codebase`和`Application-Name`属性。 applet 不需要访问用户的系统资源，因此使用`sandbox`获取权限。使用您将从中加载示例代码库的域，例如`myserver.com`。将以下属性添加到`mymanifest.txt`文件。

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

    ```

    其他清单属性可用于限制 applet 仅使用受信任的代码，并为需要在特权 Java 代码和沙箱 Java 代码之间进行调用的 applet 提供安全性，或者具有调用 applet 的 JavaScript 代码。请参阅[增强安全性与清单属性](../jar/secman.html)课程，以了解有关可用清单属性的更多信息。

3.  Create a JAR file containing your applet's class files and resources. Include the manifest attributes in the `mymanifest.txt` file that you created in the previous step.

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

    ```
    % cd build/classes
    % jar cvfm DynamicTreeDemo.jar mymanifest.txt appletComponentArch

    ```

    有关创建和使用 JAR 文件的详细信息，请参阅 JAR 文件课程中的[打包程序。](../jar/index.html)

4.  Sign the JAR file for your applet and time stamp the signature. Use a valid, current code signing certificate issued by a trusted certificate authority to provide your users with assurance that it is safe to run the applet.

    有关详细信息，请参阅[签名 JAR 文件](../jar/signing.html)课程。

    如果要使用已签名的 JNLP 文件进行安全性，请按照下一步中的说明创建 JNLP 文件，并在签名 JAR 文件之前将其包含在 JAR 文件中。有关信息，请参阅 Java 平台标准版部署指南中的[签名 JNLP 文件](https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/signedJNLP.html)。

5.  Create a JNLP file that describes how your applet should be launched.

    这是用于启动 Dynamic Tree Demo applet 的 JNLP 文件。

    The source for [``dynamictree_applet.jnlp``](examples/applet_ComponentArch_DynamicTreeDemo/src/dynamictree_applet.jnlp) follows:

    ```

    &lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;jnlp spec="1.0+" codebase="" href=""&gt;
        &lt;information&gt;
            &lt;title&gt;Dynamic Tree Demo&lt;/title&gt;
            &lt;vendor&gt;Dynamic Team&lt;/vendor&gt;
        &lt;/information&gt;
        &lt;resources&gt;
            &lt;!-- Application Resources --&gt;
            &lt;j2se version="1.7+"
                href="http://java.sun.com/products/autodl/j2se" /&gt;
            &lt;jar href="DynamicTreeDemo.jar" main="true" /&gt;

        &lt;/resources&gt;
        &lt;applet-desc 
             name="Dynamic Tree Demo Applet"
             main-class="components.DynamicTreeApplet"
             width="300"
             height="300"&gt;
         &lt;/applet-desc&gt;
         &lt;update check="background"/&gt;
    &lt;/jnlp&gt;                                   

    ```

    请注意，JNLP 文件中不存在用于请求其他权限的安全元素，因此 applet 仅在安全沙箱中运行。

    主题， [JNLP 文件](../deploymentInDepth/jnlpFileSyntax.html)的结构，描述了 JNLP 文件的语法和选项。

6.  Create the HTML page that will display the applet. Invoke Deployment Toolkit functions to deploy the applet.

    在我们的示例中，Dynamic Tree Demo applet 部署在 [``AppletPage.html``](examples/dist/applet_ComponentArch_DynamicTreeDemo/AppletPage.html)中。

    ```
    &lt;body&gt;
        &lt;!-- ... --&gt;
        &lt;script src="https://www.java.com/js/deployJava.js"&gt;&lt;/script&gt;
        &lt;script&gt; 
            var attributes = {
                code:'components.DynamicTreeApplet',  width:300, height:300} ; 
            var parameters = {jnlp_href: 'dynamictree_applet.jnlp'} ; 
            deployJava.runApplet(attributes, parameters, '1.7'); 
        &lt;/script&gt;
        &lt;!-- ... --&gt;
    &lt;/body&gt;

    ```

7.  Place the applet's JAR file, JNLP file and HTML page in the appropriate folder(s).

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

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

[下载 _ 动态树演示小程序 _ 示例的源代码](examplesIndex.html#ComponentArchDynamicTreeDemo)以进一步试验。