クラスへのアクセスが必要なプラグインを開発していますorg.eclipse.swt.widgets.Display
。このクラスはに含まれていorg.eclipse.swt.win32.win32.x86_3.5.2.v3557f-RCP20100710-0200.jar
ます。ただし、クラスは次のようにマニフェストによってエクスポートさcom.ibm.rcp.jfaceex_6.2.2.20100729-1241
れます。
Export-Package: com.ibm.rcp.jface.action,com.ibm.rcp.jface.launcher,co
m.ibm.rcp.jface.themes,com.ibm.rcp.jface.util,com.ibm.rcp.jface.viewe
rs,com.ibm.rcp.jface.window,com.ibm.rcp.jface.window.effects,com.ibm.
rcp.ui.widgets.api.jface,com.ibm.rcp.ui.widgets.api.swt
Require-Bundle: com.ibm.rcp.swtex,org.eclipse.swt,org.eclipse.core.run
time,org.eclipse.jface,org.eclipse.ui
現在、JREシステムライブラリの一部として含まれてcom.ibm.rcp.jfaceex
いません。ただし、これは、上記のエクスポートされたパッケージだけでなく、独自のクラスも含むバンドルです。
自分のプロジェクトで必要なのは、自分のプロジェクトのビルドパスにその参照を含めることだけだと信じ込まれましたが、これは機能していないようです。org.eclipse.swt.widgets
コンパイラーは、パッケージ内のクラスに対するインポートステートメントを解決できません。
これらのクラスが必要な場合、それらを正しくインポートするために、そして最小限の作業で正確に何をする必要がありますか?
注Mavenまたはサードパーティのビルドツールは使用していません。これは経営陣によって義務付けられており、私はそれを変更することはできません。
アップデート
以下のE-Rizの提案に従ってorg.eclipse.swt
、プラグインの[依存関係]タブの[必須バンドル]セクションに追加しました。次に、次のようにプロジェクトをエクスポートしようとします。
- プロジェクトを右クリックし、[エクスポート]を選択します。
- プラグイン開発->デプロイ可能なプラグインとフラグメントを選択します
- [すべて]を選択し、[完了]をクリックします
Eclipseがプロジェクトをビルドし、エラーが発生したことを通知します。ログを調べると、次のエラーが明らかになります。
1. ERROR in E:\NotesDev\Plug-in\com.ibm.lotuslabs.ui\src\com\ibm\lotuslabs\ui\UI.java (at line 1)
/**
^
The type org.eclipse.swt.widgets.Shell cannot be resolved. It is indirectly referenced from required .class files
私のコード全体にこれらが数十あります。org.eclipse.swt名前空間バンドル内のクラスまたはメソッドへの参照ごとに1つ。これは、バンドルが正常にデバッグされるにもかかわらずです。
更新2
実際、に絶対パスを入れることができることを発見しBundle-Classpath
ましたMANIFEST.MF
。奇妙なことに、これによりコンパイル時のエラーがなくなりました。絶対パスがエンドユーザーの構成に対応することは確かに保証されていないため、現時点では、これが正しいことであるとは確信していません。
ただし、プラグインをNotes(ターゲットプラットフォーム)にインストールすると、意図したとおりに機能しません。
Notesは、プラグインが正常にインストールされたと報告していますが、プラグイン(ツールバーへの追加)は表示されません。この時点で、クラスパスのあるものはまだ正しくないと思います。
更新3
リクエストごとに、MANIFEST.MF
およびbuild.properties
ファイル。絶対パスは、[依存関係]タブと[ランタイム]タブを介してEclipseによって追加されたことに注意してください。
MANIFEST.MF
:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Context Plug-in
Bundle-SymbolicName: com.ibm.lotuslabs.context.service;singleton:=true
Bundle-Version: 1.0.2
Bundle-Vendor: IBM
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-Activator: com.ibm.lotuslabs.context.service.internal.ContextPlugin
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: context.jar,
lib/activation-1.1.1.jar,
lib/mail.jar,
lib/SatuitCRM_XML_API2.jar,
lib/commons-lang3-3.1/commons-lang3-3.1.jar,
E:/NotesDev/Notes/framework/rcp/eclipse/plugins/org.eclipse.swt.win32.win32.x86_3.5.2.v3557f-RCP20100710-0200.jar
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.ui,
org.eclipse.ui.views,
org.eclipse.swt,
com.ibm.rcp.swtex,
com.ibm.rcp.jfaceex,
com.satuit.core
Export-Package: com.ibm.lotuslabs.context.service.document,
com.ibm.lotuslabs.context.service.internal
Import-Package: org.eclipse.core.resources
build.properties
:
output.. = bin/
bin.includes = META-INF/,\
context.jar,\
lib/activation-1.1.1.jar,\
lib/mail.jar,\
lib/commons-lang3-3.1.jar,\
lib/SatuitCRM_XML_API2.jar,\
plugin.xml,\
E:/NotesDev/Notes/framework/rcp/eclipse/plugins/org.eclipse.swt.win32.win32.x86_3.5.2.v3557f-RCP20100710-0200.jar
jars.compile.order = context.jar
source.context.jar = src/