[英]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.