如果我将一个名为 libA.jar 的文件放在类路径文件夹中,并将旧文件重命名为:
libA.jar.old
类加载器会加载类吗?
我在 Solaris 8 上使用 weblogic。
谢谢!
你做
如果我将一个名为 libA.jar 的文件放在类路径文件夹中,并将旧文件重命名为:
libA.jar.old
类加载器会加载类吗?
我在 Solaris 8 上使用 weblogic。
谢谢!
你做
不。
如果您使用的是 Java 5 或更早版本,则必须明确命名要加载的所有类和 jar 文件。显然,由于旧的 libA.jar.old 没有命名,因此不会加载它。
如果您使用的是 Java 6,那就有点不同了,因为那里存在通配符匹配的概念。
不过,不会加载非 jar 文件。资料取自官网。引用:
类路径条目可以包含基本名称通配符 *,这被认为等同于指定目录中所有扩展名为 .jar 或 .JAR 的文件的列表。例如,类路径条目 foo/* 指定名为 foo 的目录中的所有 JAR 文件。
仅由 * 组成的类路径条目将扩展为当前目录中所有 jar 文件的列表。包含 * 的类路径条目将不匹配类文件。要匹配单个目录 foo 中的类和 JAR 文件,请使用 foo;foo/* 或 foo/*;foo。选择的顺序决定了 foo 中的类和资源是否在 foo 中的 JAR 文件之前加载,反之亦然。