【问题标题】:How to create an executable version of my OSGi project?如何创建我的 OSGi 项目的可执行版本?
【发布时间】:2012-05-18 16:28:58
【问题描述】:

是否可以将我的 OSGi 项目(由几个包组成)保存到单个可执行文件中,例如 .exe 文件,以便我可以将其复制并运行到任何具有 JVM 的 PC 上。 我知道正常的方法是打开一个命令提示符,一个一个地安装需要的bundles/jar文件。但由于我的项目包含相当多的捆绑包,这种方法看起来很乏味。

提前感谢。

【问题讨论】:

    标签: java eclipse osgi


    【解决方案1】:

    您绝对可以比一个一个地安装捆绑包做得更好,即使您没有获得像 .exe 这样的单个“本机可执行”存档。有许多商业和开源 OSGi 应用程序以 zip 存档的形式发布;用户解压缩存档,然后调用java -jar some.osgi.jar 或运行shell 脚本。

    OSGi 运行时可以通过多种方式确定要安装的捆绑包。一些特定于 OSGi 框架(例如 Equinox 或 Felix),而另一些则更通用。如果您使用的是 Equinox,您可以创建一个 config.ini 文件并将其放在一个名为 configuration 的文件夹中,该文件夹与您的 OSGi jar 处于同一级别。在osgi.bundles 属性中列出您要启动的任何捆绑包。 config.ini 文件可以列出所有要启动的包,以及您可能需要的任何other configuration properties

    Eclipse 还允许您在 config.ini 中定义最小的捆绑包,并使用 configurator 启动插件文件夹中的所有内容。同样,如果您使用 Felix,auto-deploy directory 中的任何包都将自动启动。您还可以查看Felix File Install,它允许您将捆绑包放入受监控的文件夹中以安装它们(一旦安装了 FileInstall 本身)。尽管有这个名字,但 FileInstall 可以在 Equinox 和 Felix 上运行。

    【讨论】:

      【解决方案2】:

      这类似于creating a complete OSGi application with Felix & Maven - Sling Launchpad Plugin 可用于创建包含一组特定捆绑包的可执行 jar 或 war 文件。如果您还没有使用 Maven,它并不像“将项目保存到可执行文件”那么简单,但您可能会根据您的环境调整 jar 文件生成机制。

      【讨论】:

        【解决方案3】:

        Eclipse 有产品的概念。您可以从现有捆绑包中创建产品,然后可以将您的产品导出为可执行文件。有关产品的详细信息,请参阅http://www.vogella.com/articles/EclipseRCP/article.html 的 Eclipse RCP 教程

        本教程介绍了 Eclipse RCP 应用程序,但您不需要从那里获得所有内容 - 可以在不创建整个 Eclipse 应用程序的情况下创建产品。

        这限制了您的选择,因为您或多或少地绑定到 Eclipse Equinox 作为您的 OSGi 运行时,但从它创建可执行产品可能是一个可行的权衡。

        【讨论】:

          【解决方案4】:

          谢谢。 根据上面的答案,我遇到了本书的第 9 章。 http://my.safaribooksonline.com/9780321561510/ch09#ch09 它有一个通过产品配置导出项目的演练教程。 它正是我所需要的。 :)

          【讨论】:

            【解决方案5】:

            如果您使用 bnd(tools),那么您可以从 bndtools GUI 或通过 bnd 命令行(bnd package xyz.bndrun; java -jar xyz.jar)将项目导出到可执行 jar。生成的 jar 文件包含所有包、启动器和框架。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2017-07-27
              • 1970-01-01
              • 1970-01-01
              • 2012-04-03
              • 2016-12-06
              • 2020-03-02
              • 2021-04-06
              • 1970-01-01
              相关资源
              最近更新 更多