# 路径：部署

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

Java 富 Internet 应用程序（RIA）是具有类似于桌面应用程序的特征但通过 Internet 部署的应用程序。 Java RIA 可以作为 Java applet 或 Java Web Start 应用程序开发和部署。

*   Applet - Java applet 在浏览器的上下文中运行。 Java Plug-in 软件控制 Java applet 的执行和生命周期。
*   Java Web Start 应用程序 - Java Web Start 应用程序是第一次通过浏览器启动。随后可以从桌面快捷方式启动它们。一旦下载了 Java Web Start 应用程序并且其安全证书已被用户接受，它就像独立应用程序一样 。

过去，决定是将 Java 富 Internet 应用程序在浏览器中部署为 applet，还是在浏览器之外部署为 Java Web Start 应用程序，这可能会对应用程序的设计产生重大影响。使用最新的 Java Plug-in，这个决定已经大大简化了。

传统上，应用程序在`main`方法中构建其用户界面，包括顶级`Frame`。这种编程风格阻止了在浏览器中轻松重新部署应用程序，因为它假定应用程序创建自己的`Frame`。当在浏览器中作为 applet 运行时，applet 是应该保存应用程序用户界面的顶级容器。不需要顶级`Frame`。

在设计 Java 富 Internet 应用程序时，请使用 _ 基于组件的体系结构 _。尝试将其功能组织到一个或多个可以组合在一起的组件中。在此上下文中，术语“组件”是指 GUI 元素，它是 AWT `Component`类，Swing `JComponent`类或另一个子类的子类。例如，你可以有一个顶级`JPanel`，其中包含其他 UI 组件（比如更多嵌套的 JPanel 和文本字段，组合框等的组合）。通过这种设计，将核心功能部署为 applet 或 Java Web Start 应用程序变得相对容易。

要部署为 Java applet，只需将核心功能包装在`Applet`或`JApplet`中，并根据需要添加特定于浏览器的功能。要部署为 Java Web Start 应用程序，请将功能包装在`JFrame`中。

## 在 Java Applet 和 Java Web Start 应用程序之间进行选择

[富互联网应用程序决策指南](./_riaDecisionGuide.html)包含详细信息，可帮助您决定是将代码部署为 Java applet 还是 Java Web Start 应用程序。

## 自包含的应用程序替代方案

自包含应用程序提供不需要浏览器的部署选项。用户在本地安装应用程序并运行它类似于本机应用程序。自包含应用程序包括运行应用程序所需的 JRE，因此用户始终拥有正确的 JRE。

这条线索讨论了 RIA 和自包含应用程序的开发和部署。有关各种版本的客户端 Java Runtime Environment（JRE）软件中引入的功能，请参阅[新功能](https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/whatsnew_deployment.html)。

[![trail icon](img/0689397fa9cc4e369d63fc92b3bb6f38.jpg) **开发和部署 Java 小程序**](applet/index.html) 

[![trail icon](img/0689397fa9cc4e369d63fc92b3bb6f38.jpg) **开发和部署 Java Web Start 应用程序**](webstart/index.html) 

[![trail icon](img/0689397fa9cc4e369d63fc92b3bb6f38.jpg) **利用 Java 富 Internet 应用程序** ](doingMoreWithRIA/index.html) 做更多事情

[![trail icon](img/0689397fa9cc4e369d63fc92b3bb6f38.jpg) **深入部署**](deploymentInDepth/index.html)

[![trail icon](img/0689397fa9cc4e369d63fc92b3bb6f38.jpg) **部署自包含的应用程序**](selfContainedApps/index.html)

支持工具

[![trail icon](img/0689397fa9cc4e369d63fc92b3bb6f38.jpg) ** JAR 文件中的打包程序**](jar/index.html)