有一个类文件TagAttributeInfo
,它位于我的两个jar文件之下。
j2ee-6.1.jar,servlet-api-2.3.jar .
现在我需要从j2ee-6.1.jar
调用该类,但在运行时,它正在使用我不想要的servlet-api-2.3.jar
类。
任何人都可以帮我在类路径中优先处理jar文件,这样我就会优先考虑j2ee-6.1.jar
。
答案 0 :(得分:16)
按类路径顺序向上移动(右键单击项目,选择Build Path,然后选择Configure Build Path,然后选择Order and Export)
答案 1 :(得分:6)
j2ee-6.1.jar
,然后按向上按钮将其按类路径顺序向上移动。继续按向上,直到它高于servlet-api-2.3.jar
。OK
。答案 2 :(得分:3)
它将在类路径中找到的第一个jar,它将具有它正在寻找的类。因此,您可以通过将jar放在类路径的开头来确定类的优先级。
你在Eclipse中如何做到这一点我不确定,但是可能有一些与类路径上的jar相对应的项目依赖项列表,希望你可以在该列表上订购元素并将jar放在最佳。尝试在项目设置面板中查找它。
答案 3 :(得分:3)
答案 4 :(得分:1)
我不知道它是否是规范的一部分,但是当我在过去完成此操作时,在类路径中更早地放置“更高”的优先级jar。
答案 5 :(得分:1)
您确定需要两个jar文件吗?
无论如何,在Build Path对话框中,您可以指定要搜索的jar文件的顺序。
答案 6 :(得分:1)
这些jar中只有一个应该在你的类路径中,以便能够编译你的类。但是在运行时,jar将在您的应用程序服务器类路径中,并且您将无法将其替换为另一个。
如果您的容器是JEE6容器,那么它使用servlet 3.0并且servlet-api-2.3.jar已过时,不应该在类路径中。如果您的容器只支持servlet api 2.3,那么您将无法使用此容器中jee6 jar的类。