Eclipse插件,如何在其他插件中调用方法

时间:2012-12-13 09:36:22

标签: java eclipse manifest eclipse-plugin

我开发了两个eclipse插件,EAXMLModelExchange和EAXMLModelExchangeWizard。

我想在插件EAXMLModelExchangeWizard中调用公共静态方法EAXMLExchange.convertEAModelToEAXml(String,String)。

该类位于包eaxmlmodelexchange。

如何调用该方法。 import eaxmlmodelexchange.EAXMLExchange;

当我将项目作为Eclipse Application运行时,它工作,但是当我将它导出到.jar文件时,该方法不会被调用。

public void runFunction() {
   EAXMLExchange.convertEAModelToEAXml(String, String);
}

EAXMLModelExchange中的MANIFEST.MF

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: EAXMLModelExchange
Bundle-SymbolicName: EAXMLModelExchange;singleton:=true
Bundle-Version: 1.0.0
Require-Bundle: org.eclipse.core.runtime,
 org.eclipse.sphinx.emf;bundle-version="0.7.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Export-Package: eaxmlmodelexchange

EAXMLModelExchangeWizard中的MANIFEST.MF

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: EAXMLModelExchangeWizard
Bundle-SymbolicName: EAXMLModelExchangeWizard;singleton:=true
Bundle-Version: 1.0.0
Bundle-Activator: eaxmlexchangewizard.Activator
Require-Bundle: org.eclipse.ui,
 org.eclipse.core.runtime,
 org.eclipse.core.resources,
 org.eclipse.ui.ide,
 org.eclipse.sphinx.emf;bundle-version="0.7.0",
 EAXMLModelExchange;bundle-version="1.0.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.7

有谁知道如何让它发挥作用?

2 个答案:

答案 0 :(得分:0)

您可以使用一种技术来查看抛出的错误是将任何异常写入Eclipse日志。 “错误日志”视图允许您查看和清除日志。

try {
    EAXMLExchange.convertEAModelToEAXml("Hello", "World");
} catch (Exception e) {
    IStatus status = new Status(Status.ERROR,"EAXMLModelExchangeWizard","Error calling other plugin",e);
    Activator.getDefault().getLog().log(status);
}

答案 1 :(得分:0)

需要做出一些澄清。

当你说你已经将它们作为jar文件导出时,这是否意味着插件罐并且你已将它们放置在eclipse环境中? (如dropins文件夹)
如果不是....如果您调用的是简单的Java应用程序,则相互之间将不会知道依赖关系。在调用之前必须将它们放在类路径中,或者应该在一个jar的MANIFEST.MF文件中添加额外的选项Class-Path:<另一个依赖jar的名称>