1

私は現在、ビュー付きのEclipseプラグインを持っています。src foler内には、プラグインで使用したいいくつかの画像を含むアイコンフォルダーがあります。プログラム内では、次のような行を使用します。

public static final Image anImage = new Image(null, "sample_image.gif");

次に、その画像をどこかで使用します。これは、プログラムをローカルで実行すると機能しますが、プラグインをjarにエクスポートしてから、新しいEclipseにインストールすると、プラグインが壊れます。コードで画像の使用法を取り出すと、プラグインは画像がなくても正常に動作します。プラグインのインストール用にエクスポートされたjarファイルで画像を使用できるようにするための正しい方法は何でしょうか。

以前の問題とこれに似たSOの質問があり、誰かがClassloader.getResource()の使用を提案しました。私はそれを動作させるのにあまり運がなかったし、それは必要ないようだ。デフォルトでは、PDTで生成されたEclipseビュープラグインデモテンプレートを使用する場合、「 sample.gif」は、私が知る限り、正常に機能します。

提案をありがとう。

4

1 に答える 1

9

通常、アイコンフォルダアプローチを使用する必要があります。フォルダがbuild.propertiesファイル(bin.includesセクションの下)にエクスポートされていることを確認します。MANIFEST.MFエディターを使用し、[ビルド]タブの[バイナリビルド]セクションでアイコンフォルダーにチェックマークを付ける場合。srcフォルダーの扱いは異なります。コンパイルするコードがあり、元のフォルダーではなく、コンパイルされた出力が含まれていることを前提としています。コンパイルされたプラグインの代わりにワークスペースディレクトリが使用されるため、ワークスペース内のプラグインを使用してEclipseから実行する場合に「機能」します。AbstractUIPluginのimageDescriptorFromPluginを使用して画像をロードできます。たとえば、使用します。

Image img = AbstractUIPlugin.imageDescriptorFromPlugin("you.bundle.id", "/icons/sample_image.gif").createImage();
于 2012-08-15T07:16:01.370 に答える