簡體   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