在另一个java项目中调用我自己的插件

在另一个java项目中调用我自己的插件,java,eclipse,plugins,eclipse-plugin,Java,Eclipse,Plugins,Eclipse Plugin,我开发了一个插件MultiTanPluginX,它执行m2m QVT转换。转换在插件本身中成功执行,但是,当导出插件并在另一个java项目中使用它时,我得到以下错误: java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.m2m.internal.qvt.oml.compiler.UnitResolverFactory$Registry org.eclipse.m2m.qvt.oml.Transfor

我开发了一个插件MultiTanPluginX,它执行m2m QVT转换。转换在插件本身中成功执行,但是,当导出插件并在另一个java项目中使用它时,我得到以下错误:

java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.m2m.internal.qvt.oml.compiler.UnitResolverFactory$Registry
    org.eclipse.m2m.qvt.oml.TransformationExecutor.doLoad(TransformationExecutor.java:205)
    org.eclipse.m2m.qvt.oml.TransformationExecutor.loadTransformation(TransformationExecutor.java:108)
    org.eclipse.m2m.qvt.oml.TransformationExecutor.execute(TransformationExecutor.java:137)
    multitenantplugin.qvtTransform.generateMultiTenant(qvtTransform.java:81)
    org.saas.mda.tenanthandler.tenantServlet.dothistrans(tenantServlet.java:205)
    org.saas.mda.tenanthandler.tenantServlet.doGet(tenantServlet.java:182)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

我已经在插件中的运行时插件中定义了这个类,但是,这个类不能作为jar文件包含在我的新java项目中。如何解决这个问题?

大多数Eclipse插件只能在Eclipse RCP中使用,而不能在普通Java程序中使用,因为它们依赖于由RCP启动代码正确初始化的Eclipse插件基础结构。看起来你的插件属于这一类


因此,您需要使用Eclipse RCP。

org.Eclipse.m2m.internal.qvt.oml.compiler.UnitResolverFactory的注册表内部类是什么?如何访问注册表内部类?我不知道。这个类是你的代码吗?由于某些原因,它找不到。这是org.eclipse.m2m.internal.qvt.oml.compiler.UnitResolverFactory类,其中有一个注册表实例化:大多数eclipse插件只能在eclipse RCP中使用,而不能在普通Java程序中使用-看起来您的插件属于这一类。