Ситуация в том, что мне нужно упаковать запущенный банку X.jar в пакет OSGi. Сама банка не может быть изменена, и OSGi является обязательным, так как X.jar должен быть распределен и запускаться через программную программу, для которой требуются пакеты OSGi. Приложение, содержащееся в X.jar, предназначено для связи по сети с другим приложением.Запуск банки, включенной в комплект OSGi
Я планировал создать пакет OSGi с затмением, а затем включить в него X.jar. Но проблема в том, что X.jar не обнаружен. Если я попытаюсь получить доступ к копии X.jar в моей файловой системе, это сработает. Моя структура расслоения файла:
-\MyBundle
-\META-INF
-\MANIFEST.MF
-\src
-\mybundle
-\Activator.class
-\X.jar
Активатор:
public void start(BundleContext context) {
Thread XThread = new Thread(){
public void run(){
try {
Runtime.getRuntime().exec("java -jar X.jar");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
}
Manifest.mf
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Bundle
Bundle-SymbolicName: myBundle
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: com.ericsson.mas.Activator
Bundle-ClassPath: .,X.jar
Bundle-Vendor: BundleVendor
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Import-Package: org.osgi.framework;version="1.3.0"
Я подозреваю, что есть некоторые проблемы с моим Bundle-ClassPath, но это кажется правильным, когда я искать вокруг. Любая помощь приветствуется.
Примечание: Я знаю, что это полностью противоречит философии OSGi.