JVM中的动态链接失败是什么?

时间:2017-06-06 20:07:39

标签: java jvm

在Oracle的Java中 - Essential Classes Trail我发现了以下声明:

  

错误类

     

当Java中出现动态链接失败或其他硬故障时   虚拟机发生时,虚拟机抛出错误。 [...]

Java和JVM上下文中的动态链接失败究竟是什么意思?这与类加载器在运行时可能遇到的问题有关吗?

1 个答案:

答案 0 :(得分:1)

在Java中,您可以动态加载Class对象,并验证该Class及其实例是否与当前加载的类兼容的逻辑称为动态链接。

以下是您可以以java.lang.LinkageError形式获取链接失败的示例:

1)你有类和接口。您稍后修改该接口方法签名并使用该新接口启动VM。现在,如果你动态尝试加载你的类,你将会遇到链接失败,因为类是使用旧版本的接口方法签名编译的,并且无法使用新的接口方法签名。

2)从类加载器CL1和CL2加载相同的类。然后,您从CL1加载的类创建对象o1,并在CL2加载的代码中使用该对象。