【发布时间】:2012-06-25 15:01:58
【问题描述】:
我正在尝试通过使用 XStream 将任意 Java 对象序列化为 XML,将任意 Java 对象从工作区传输到我的插件。这工作正常(使用 SIMON),但是当试图在插件站点上恢复它们时,我得到一个 CannotResolveClassException (显然)。所以我想以某种方式在我的插件的构建路径中包含工作区类,以便使工作区类型在我的插件中可用,从而能够恢复对象。
【问题讨论】:
-
您的插件需要访问 java 类。它们已经在插件中,还是在 java 项目中?
-
它们在一个普通的Java项目中,而不是插件。
-
Eclipse 插件是 OSGi 包,因此您必须以某种方式将您的 java 类公开给 OSGi(包含在您的插件中或作为它们自己的插件)。请参阅 stackoverflow.com/q/3594024/713646 和 stackoverflow.com/q/762721/713646,因为它们解释了 jar 和 OSGi 之间的关系。
-
感谢您的建议...嗯,但我正在编写一个插件来在运行时可视化对象并让它们在事后可互操作(即我需要存储它们)。但是,如果我的插件(在 Eclipse VM 中运行)不知道这些(任意)用户类型,则会导致问题。无论如何,我不能指望用户构建 OSGi 包只是为了能够使用这个插件......
-
如果就像在您的插件中托管另一个 java 应用程序一样,您可以(理论上)使用 URLClassloader 创建和加载他们的代码。您将完全通过反射来操纵他们的对象。
标签: java eclipse eclipse-plugin eclipse-pde