【问题标题】:java.lang.LinkageError after Eclipse P2 UpdateEclipse P2 更新后的 java.lang.LinkageError
【发布时间】:2013-10-30 00:08:07
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java eclipse equinox p2


    【解决方案1】:

    LinkageError (http://docs.oracle.com/javase/6/docs/api/java/lang/LinkageError.html) 的 Javadoc 非常不言自明:

    LinkageError 的子类表明一个类对另一个类有某种依赖;但是,在前一个类编译之后,后一个类发生了不兼容的变化。

    在您的情况下,我可以想象:已经安装了一些没有明确 Bundle-RequiredExecutionEnvironment 清单约束的捆绑包,并且一些用户拥有与它不兼容的 JVM。其他包依赖于这些包,当涉及到类加载时,您会收到 LinkageError。

    【讨论】:

    • 您好,感谢您的回复。 Bundle-RequiredEE 不会发生变化。所有用户都使用 >= Java 7。而且我总是更新所有功能,所以不应该有任何不兼容的东西。
    • 这只是一个猜测。详细的堆栈跟踪可能会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 2011-03-30
    • 2017-04-15
    • 1970-01-01
    • 2018-06-17
    相关资源
    最近更新 更多