Eclipse P2 Update之后的java.lang.LinkageError

时间:2013-10-21 13:13:46

标签: java eclipse equinox p2

我们正在使用Tycho构建我们的功能/包并使用org.eclipse.equinox.p2.director来更新产品。

我注意到在更新期间产品运行时,更新会导致java.lang.LinkageError。我想问题是当更新被激活时已经加载了一些二进制类,并且它们与更新后可能加载的新类不匹配。

我找不到任何有关此类问题的信息。

请注意,p2控制器是从外部进程调用的,而不是在eclipse本身中调用导致此错误的原因。

1 个答案:

答案 0 :(得分:0)

LinkageError的Javadoc(http://docs.oracle.com/javase/6/docs/api/java/lang/LinkageError.html)非常自我解释:

  

LinkageError的子类表明一个类对另一个类有一些依赖性;然而,后一类在前一类的编译后发生了不相同的变化。

在您的情况下我可以想象:已经安装了一些没有显式Bundle-RequiredExecutionEnvironment清单约束的bundle,而且有些用户拥有与它不兼容的JVM。其他bundle依赖于那些,当涉及到类加载时,你会得到LinkageError。