【发布时间】:2012-05-09 22:27:21
【问题描述】:
我在一个文件夹中有一堆 jar,为了简化类路径设置,我使用了新的(在 Java 6 中)类路径通配符语法:
CLASSPATH=":/$JARS/*"
这将获取 $JARS 目录中的所有 jars。到目前为止一切顺利。
但是,该目录中有一个 jar,我需要首先出现在类路径中,通配符语法的文档指出 jar 的顺序取决于实现,不能依赖。
我想做的是在通配符前面添加我需要首先明确出现的一个 jar:
CLASSPATH=":/$JARS/first.jar:/$JARS/*"
现在这意味着first.jar 将在类路径中出现两次,首先是显式引用,然后是通配符。这会给我带来什么问题吗?
是的,我知道我可以将 first.jar 放入不同的目录以避免该问题,但可以说这样做会涉及很多我不想处理的麻烦(我正在处理使用第 3 方产品)。
编辑:
我需要首先出现 jar,因为它包含一些 XML 配置文件(作为资源加载),这些文件需要覆盖另一个 jar 中具有相同名称的 XML 文件(由第 3 方供应商提供)。澄清一下,first.jar 是我控制的唯一罐子。目录中的所有其他 jar 均由第 3 方供应商提供。
【问题讨论】:
-
为什么要先出现?
-
@GuillaumePolet 我编辑了我的问题以回复您的评论。
-
然后,更简洁的解决方案是将您的资源放在专用文件夹 /com/mycompany/README.txt (只是一个示例)中,这样您就可以确定加载的是您的资源.