不要在創建插件時直接將jar添加到構建路徑。
你必須在你的插件(或其他插件)中包含所有的罐子,並設置Bundle-Classpath
並在build.properties
中包括罐子。如果您正在引用其他插件,只需將它們添加到您的插件的依賴關係中即可。
您可以使用MANIFEST.MF/plugin.xml/build.properties編輯器將它們添加到MANIFEST.MF。
在編輯器的「運行時間」選項卡上,將JAR添加到「Classpath」條目(應該還有一個用於主插件代碼的'。'條目)。
在編輯器的'Build'選項卡上,選中要包含在插件中的所有jar。你應該把jar放在你的插件的某個地方(例如'lib'目錄)。
例如,在此build.properties:
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
plugin.properties,\
plugin.xml,\
lib/jogg-0.0.7.jar,\
lib/jorbis-0.0.15.jar,\
lib/vorbisspi1.0.2.jar,\
icons/
我有三個罐子在 'lib' 目錄下。
的MANIFEST.MF這個樣子:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name
Bundle-SymbolicName: greg.music.ogg;singleton:=true
Bundle-Version: 2.0.0.qualifier
Bundle-Vendor: %plugin.provider
Bundle-Localization: plugin
Require-Bundle: greg.music.core;bundle-version="1.0.0",
greg.music.resources;bundle-version="1.0.0",
org.eclipse.core.runtime,
javazoom.jlgui.basicplayer,
org.eclipse.e4.core.services;bundle-version="2.0.100"
Bundle-ClassPath: .,
lib/jogg-0.0.7.jar,
lib/jorbis-0.0.15.jar,
lib/vorbisspi1.0.2.jar
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: javax.annotation;version="1.0.0",
javax.inject;version="1.0.0",
org.eclipse.e4.core.di.annotations
編輯器Runtime選項卡:
構建標籤:
是在沒有發現罐子一個OSGi包?如果是的話,你不應該將jar添加到包含的jar中,而是添加到依賴項中。如果不是,你還應該將它添加到'build.properties'的'bin.includes'部分。 –
謝謝。它現在正在工作:) – Ronak