2

私は2つのEclipseプラグイン、EAXMLModelExchangeとEAXMLModelExchangeWizardを開発しました。

プラグインEAXMLModelExchangeWizardでパブリック静的メソッドEAXMLExchange.convertEAModelToEAXml(String、String)を呼び出したい。

クラスはパッケージeaxmlmodelexchangeにあります。

メソッドの呼び出し方法。import 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

どのようなエラーがスローされているかを確認するために使用できる手法の 1 つは、例外を 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 アプリケーションとして呼び出している場合、依存関係は互いに認識されません。呼び出す前に両方をクラスパスに配置するか、1 つの jar の MANIFEST.MF ファイルを追加オプション Class-Path: < name of the otherdependent jar> で追加する必要があります。

于 2012-12-14T12:50:04.383 に答える