2015-08-28 77 views
4

同一类我不是一个Java专家,我有一个关于在冲突的情况下,类分辨率疑问。考虑以下情况:我有两个jar文件external-library-0.0.1external-library-0.0.2均具有一类Foo的情况。爪哇 - 在构建类路径和运行时类路径优先

如果我只在构建类路径中使用external-library-0.0.1.jar构建,然后在运行时类路径中添加external-library-0.0.2.jar,那么将使用哪个类Foo

回答

4

该一个其上运行时类路径将被使用。
另一个在运行时根本不知道JVM。

如果是任何差异(例如一个方法不存在),你会在运行时出现错误。

+0

好的,谢谢。事实上,我有一个运行时错误,我的假设是我有一些冲突,由于我的'pom.xml'文件中的错误。 – se7entyse7en

1

从视点程序员,假设随机。永远不要在编译时或运行时在类路径中放入同一类的多个定义。

一个可以指出,有时有一些尝试提供有关负载为了保障工具,但依靠它使你的应用程序固有的脆弱,这种错误实在是很难解决,当您需要。