【发布时间】:2016-11-10 08:13:30
【问题描述】:
我目前正在 Eclipse 中开发一个插件。我遇到了以下代码的问题:
XYZ object1 = XYZ(object2);
上述行抛出异常的地方:
原因:java.lang.ClassCastException:abc.XYZ 无法转换为 abc.XYZ
XYZ 类来自另一个插件。不幸的是,上述插件没有可见的包。因此,将其设置为依赖项会引发 ClassDefNotFound 异常。
幸运的是,我有插件的.jar 并将其添加到我的插件的构建路径中。当我这样做时,它仍然返回一个ClassDefNotFound 异常。我环顾四周,发现对于插件,引用的库不会被 JVM 自动“检测到”,因此,我按照解决方案将所述 jar 添加到我的插件的 MANIFEST.MF 和 bin.includes 部分build.properties.
按照上述解决方案后,我再次尝试,现在我有 classCastException。至少,此时,jar 文件中的类XYZ 正在被加载。做了一些研究,我发现两个XYZ 类的类加载器是不同的。我很困惑我应该做什么。
这是整个问题的总结:
- 必需的类来自另一个插件。所述插件没有可见的类。
- 将依赖插件的 jar 文件添加到构建路径中。
- 抛出 ClassDefNotFoundException。
- 更新了我的插件的 manifest.mf 和 build.properties 配置。
- 抛出 ClassCastException。
如果有人能解决这个问题,或者我能做些什么来解决这个问题,那就太好了。
提前感谢您提供的任何帮助/意见。
【问题讨论】:
标签: java eclipse plugins eclipse-pde