2

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

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

该类位于包 eaxmlmodelexchange 中。

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

当我将项目作为 Eclipse 应用程序运行时它可以工作,但是当我将它导出到 .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

有谁知道如何让它工作?

4

2 回答 2

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);
}
于 2012-12-13T13:17:18.780 回答
0

需要进行一些澄清。

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

于 2012-12-14T12:50:04.383 回答