首页 文章

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

提问于
浏览
1

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

CLASSPATH=":/$JARS/*"

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

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

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

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

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

是的,我知道我可以把 first.jar 放到一个不同的目录中以避免这个问题,但是我只想说这样做会涉及很多麻烦,我会处理第三方产品 .

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

2 回答

  • 5

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

    更多信息:How does JVM deal with duplicate JARs of different versions

  • 0

    会有一些问题 . 有时JVM可能正常工作,但有时候它可能无法识别任何 jar . 最好在类路径中有一个jar .

相关问题