JRE如何获取重复的类

时间:2014-09-10 08:45:11

标签: java runtime classloader

假设有两个jar,都包含具有相同完全限定名称的相同类文件。 现在JRE如何看待它们,它会抛出运行时异常吗?这是我在测试中看不到的。

如何选择将要加载的类/哪个将被忽略?

4 个答案:

答案 0 :(得分:2)

Jre从第一个罐子里拿课。

答案 1 :(得分:0)

它不会导致异常,因为当一个类首次被引用(并且尚未加载)时,类加载器将在类路径中查找它,一旦找到它,它将被加载并且搜索将停止。

答案 2 :(得分:0)

你不能使用..如果使用某个IDE它会给你错误和重复或发现模糊的类..你必须指定你想要使用哪个jar文件的类..如果两者都有相同的名字,你有在你的项目或类中添加了引用..并使用两者的import语句..它应该给你错误..

答案 3 :(得分:0)

单个类加载器只会加载其中一个,但是没有定义可以加载哪个行为的行为。这可能会导致问题,包括ClassNotFoundException,即使这两个类在编译之前实际上是完全相同的代码。它将从第一个定位的jar加载,但这可能因类加载器和操作系统而异,并且可能会产生一些奇怪的副作用,特别是在较旧的servlet容器中。应尽可能避免这种情况。