在Oracle的Java中 - Essential Classes Trail我发现了以下声明:
错误类
当Java中出现动态链接失败或其他硬故障时 虚拟机发生时,虚拟机抛出错误。 [...]
Java和JVM上下文中的动态链接失败究竟是什么意思?这与类加载器在运行时可能遇到的问题有关吗?
答案 0 :(得分:1)
在Java中,您可以动态加载Class对象,并验证该Class及其实例是否与当前加载的类兼容的逻辑称为动态链接。
以下是您可以以java.lang.LinkageError形式获取链接失败的示例:
1)你有类和接口。您稍后修改该接口方法签名并使用该新接口启动VM。现在,如果你动态尝试加载你的类,你将会遇到链接失败,因为类是使用旧版本的接口方法签名编译的,并且无法使用新的接口方法签名。
2)从类加载器CL1和CL2加载相同的类。然后,您从CL1加载的类创建对象o1,并在CL2加载的代码中使用该对象。