0
这种情况是我需要将可运行的jar包X.jar打包到OSGi包中。 jar本身不能修改,OSGi是强制性的,因为X.jar是通过一个需要OSGi bundle的软件程序来分发和运行的。包含在X.jar中的应用程序是通过网络与另一个应用程序进行通信。运行OSGi包中包含的jar
我的计划是用eclipse创建一个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"
我怀疑是有一些问题,我的包,CLASSPATH中,但它似乎是正确的,当我四处搜寻。任何帮助是极大的赞赏。
注意:我知道这完全违背了OSGi的哲学。