【发布时间】:2010-12-20 09:29:37
【问题描述】:
如果我将一个名为 libA.jar 的文件放在类路径文件夹中,并将旧文件重命名为:
libA.jar.old
类加载器会加载类吗?
我在 Solaris 8 上使用 weblogic。
谢谢!
乌多
【问题讨论】:
标签: java jakarta-ee load classpath java-ee-5
如果我将一个名为 libA.jar 的文件放在类路径文件夹中,并将旧文件重命名为:
libA.jar.old
类加载器会加载类吗?
我在 Solaris 8 上使用 weblogic。
谢谢!
乌多
【问题讨论】:
标签: java jakarta-ee load classpath java-ee-5
没有。
如果您使用的是 Java 5 或更早版本,则必须明确命名所有要加载的类和 jar 文件。显然,由于旧的 libA.jar.old 没有命名,因此不会被加载。
如果您使用的是 Java 6,情况会有所不同,因为那里存在通配符匹配的概念。
仍然不会加载非 jar 文件。信息取自official site。引用:
类路径条目可以包含 基本名称通配符 *,其中 被认为等同于指定 中所有文件的列表 扩展名为 .jar 的目录或 。罐。例如,类路径 entry foo/* 指定所有 JAR 文件在 名为 foo 的目录。
类路径 仅由 * 组成的条目展开 到所有 jar 文件的列表 当前目录。类路径条目 包含 * 将不匹配类 文件。匹配类和 JAR 单个目录 foo 中的文件,使用 foo;foo/* 或 foo/*;foo。这 选择的顺序决定了是否 foo 中的类和资源是 在 foo 中的 JAR 文件之前加载,或 反之亦然。
【讨论】: