2

我有一个名为 Floodlight.jar 的 jar 文件。我可以在 cmd 行中运行它:java -jar floodlight.jar。现在我想将它转换成一个捆绑包以使用 FUSE ESB 容器进行部署。这是我到目前为止所做的:

  1. 转变:

     java -jar bnd.jar wrap floodlight.jar
    

    生成一个名为 floodlight.bar 的包。将名称更改为 Floodlight.jar

  2. 部署

    FuseESB:karaf@root> osgi:install -s file:/home/usr/Dir/to/floodlight.jar
    

我希望捆绑包可以像我在 cmd 行中所做的那样做同样的事情:java -jar floodlight.jar 一旦它开始。但是,它是活动的,没有做任何事情。它的行为就像一个图书馆。

我想知道如何让捆绑包启动后运行主类。任何人都可以帮助我吗?

4

1 回答 1

2

OSGi 应用程序的入口点是 BundleActivator 的。您不能像在标准 Java 应用程序中那样调用 main-method。但是,您可以在包的 start(BundleContext) 方法的 main 方法中执行所有操作。

因此,实现 BundleActivator 接口并将其添加到您的清单中。

于 2013-02-15T22:11:36.030 回答