繁体   English   中英

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

[英]Eclipse plugin, how to call method in other plugin

我开发了两个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

有谁知道如何使它工作?

您可以用来查看发生了什么错误的一种技术是将所有异常写入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);
}

需要进行一些澄清。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM