如何优先考虑eclipse classpath中的jar文件?

问题描述:

在我的两个jar文件下有一个类文件TagAttributeInfo如何优先考虑eclipse classpath中的jar文件?

j2ee-6.1.jar,servlet-api-2.3.jar . 

现在我需要一个类从j2ee-6.1.jar被称作但在运行时,它走的是类servlet-api-2.3.jar,这是我不想要的。 任何人都可以帮助我在课程路径中优先考虑jar文件,这样我会优先考虑j2ee-6.1.jar

您移动它在类路径顺序(右键单击该项目,选择构建路径,其次是配置构建路径,然后排序和导出)

它将使用它在类路径中找到的第一个包含它正在查找的类的jar。所以你可以通过将jar放在类路径的开头来优先考虑你的类。

如何在Eclipse中做到这一点我不确定,但可能有一些与类路径上的jar对应的项目依赖关系列表,并且希望您可以对列表中的元素进行排序并将jar放在顶端。尝试在项目设置面板中查找它。

我不知道它是否是规范的一部分,但是当我在过去完成此操作时将较早的“较高”优先级的jar放在类路径中。

你确定你需要两个jar文件?

无论如何,在Build Path对话框中,您可以指定要搜索的jar文件的顺序。

  • 进入你的项目属性>构建路径
  • 订单和出口标签,发现j2ee-6.1.jar并按最多按钮来移动它上涨的类路径顺序。继续按向上,直到它高于servlet-api-2.3.jar
  • 最后按OK

  1. 删除servlet-api-2.3.jar,你不需要它。
  2. 或者移动j2ee-6.1.jar比lib列表中的servlet-api-2.3.jar更高。

只有其中一个jar包应该放在你的类路径中,以便能够编译你的类。但是在运行时,jar会存在于你的应用程序服务器类路径中,并且你将无法用另一个替换它。

如果你的容器是一个JEE6容器,那么它使用servlet 3.0,并且servlet-api-2.3.jar已经过时,不应该在类路径中。如果您的容器只支持servlet api 2.3,那么您将无法使用此容器中jee6 jar的类。