管理共享库
共享库是多个应用程序使用的文件。 每个共享库都由符号名称, Java™ 类路径和用于装入 Java 本机接口 (JNI) 库的本机路径组成。 可使用共享库来减少系统上重复库文件的数目。
准备工作
应用程序使用相同的库文件。 已将应用程序部署到服务器,或者您正在部署应用程序。
有关此任务
假设您有四个应用程序使用同一个库文件 my_sample.jar。 在部署这四个应用程序之后,不必在系统上放四份 my_sample.jar,您可以为 my_sample.jar 定义一个共享库,然后让这四个已部署的应用程序使用该 my_sample.jar 库文件。
避免麻烦: 如果要将新的 JAR 添加到为系统定义的共享库,请始终记住重新启动 Java 虚拟机 (JVM) ,以便系统知道为新 JAR 添加的此共享库。
隔离式共享库提供了另一种方法来减少库文件数目。 每个隔离式共享库都有他们自己的类装入器,因此能够在应用程序之前共享类的单个实例。 每个应用程序都可以指定它要引用的隔离式共享库。 不同的应用程序可以引用隔离式共享库的不同版本,从而导致一组应用程序共享一个隔离式共享库。 借助隔离式共享库,一些应用程序可以共享库 A 的单一副本(版本 1),而其他应用程序则共享库 A 的另一个单一副本(版本 2),因此内存中共有两个实例。
通过使用管理控制台,可以为由多个应用程序使用的库文件定义共享库,然后使这些库与特定应用程序或模块相关联或者与应用程序服务器相关联。 与关联共享库相关的准则如下所示:
- 如果使共享库文件与应用程序或模块相关联,那么将在局部类装入器中装入该共享库所表示的类(这个类装入器可以是应用程序范围的类装入器或模块范围的类装入器)。
- 如果使隔离式共享库文件与应用程序或模块相关联,那么将在为该共享库创建的独立类装入器中装入该共享库所表示的类。
- 如果使共享库文件与服务器相关联,那么将在服务器范围的类装入器中装入该共享库所表示的类。 此类装入器是应用程序类装入器的父代, WebSphere® Application Server 扩展类装入器是其父代。 使共享库文件与服务器相关联将使其与该服务器上的所有应用程序相关联。
除了使用管理控制台来使共享库与应用程序相关联以外,还可以使用已安装的可选软件包。 在这种情况下,通过在应用程序的 MANIFEST.MF 文件中声明所依赖的库 .jar 文件使共享库与应用程序相关联。 请参阅 Java 2 Platform, Enterprise Edition (J2EE) 1.4 规范的第 8.2 节以获取示例。