jar文件在类路径中出现两次是否可以?

mlu*_*own 1 java jar classpath

我在一个文件夹中有一堆jar,为了简化类路径设置,我使用了新的(在Java 6中)类路径通配符语法:

CLASSPATH=":/$JARS/*"

这将获取$ JARS目录中的所有jar.到现在为止还挺好.

但是,在该目录中有一个jar我需要首先出现在类路径中,而通配符语法的文档声明jar的顺序是依赖于实现的,并且不能依赖它.

我想要做的是在通配符前添加我需要首先显示的一个jar:

CLASSPATH=":/$JARS/first.jar:/$JARS/*"

现在这意味着first.jar它将在类路径中出现两次,首先是显式引用,然后是通配符.这会给我带来什么问题吗?

是的,我知道我可以放入first.jar一个不同的目录来避免这个问题,但我只想说这样做会带来很多麻烦,我宁愿不必处理(我正在处理第三方产品) .

编辑: 我需要首先出现jar,因为它包含一些XML配置文件(作为资源加载),需要在另一个jar(由第三方供应商提供)中覆盖具有相同名称的XML文件.只是为了澄清,first.jar是我控制下唯一的罐子.目录中的所有其他jar都由第三方供应商提供.

Col*_*n D 5

是的,相同的jar /类可以在类路径上多次出现.jvm按顺序搜索它们.

关于这个问题的更多信息:JVM如何处理不同版本的重复JAR