基本自定义 > Windchill 自定义基础 > 管理自定义 > PTC 提供的文件自定义最佳做法 > 管理客户端 JAR 文件 > 客户端 JAR 部署方法概述
  
客户端 JAR 部署方法概述
要有效地管理客户端 JAR 自定义,需要了解 Windchill 客户端 JAR 部署方法。
逻辑 JAR
Windchill R7.0 中引入了“逻辑”JAR 的概念。除了可能存在与第三方 JAR 等的任何外部相关性之外,每个逻辑 JAR 实际上还包含四个 JAR。下图显示了逻辑 JAR 的组件。
在此图中,粗体标签表示每个组件 JAR 的角色名称,而斜体名称表示 JAR 的实际名称。例如,对于名为 "MyApplet" 的逻辑 JAR,组件分别为 MyApplet.jar、MyAppletCust.jar、MyAppletDSU.jar 和 MyAppletFCS.jar。
* 
图中的 classloading 优先级为从左到右,因此自定义 JAR 将覆盖 DSU JAR,后者将覆盖原始分布 JAR。
头 JAR 仅包含声明组件及其所依赖的其他 JAR 的内容清单,以及当头 JAR 为 applet 的顶层 JAR 时的 JAR 索引。PTC 分布会将自定义 JAR 留空,因为它们供客户添加和覆盖 (例如,到资源束)。DSU JAR 将一直留空,除非维护版本向目标客户端提供附加文件和/或对应 FCS JAR 中已存在文件的较新版本。FCS JAR 包含 FCS (首批出货版本) 中模块所需的所有原始文件。头 JAR 可能会在自己的组件之后列出其所依赖的其他 JAR。
* 
如果可下载软件更新中提供了 R7.0 之前的 Windchill 维护版本,则需要使用 "DSU"。
模块化客户端 JAR
除了将逻辑 JAR 分为不同组件以用于自定义、维护版本和原始分布之外,已努力将客户端 JAR 分为相应的模块化组件,以防一个 applet 所需的资源被所有 applet 自动下载。
此类工作等同于需要防止任何资源被多次下载,即包含在多个 FCS JAR 中。DSU 和自定义 JAR 实际上会复制对应 FCS JAR 包含的资源以覆盖它们,无需重新构建 FCS JAR。实际上,只有在很少的、有针对性的情况下才会在多个 FCS JAR 中下载一个资源。
通常,此类工作已导致使用逻辑 JAR 的相关性树 (更精确地说,是无向图),如下一节所述。