1

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

提前感谢。

4

5 回答 5

2

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

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

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

于 2012-05-18T19:50:49.957 回答
2

这类似于使用 Felix 和 Maven 创建完整的 OSGi 应用程序- Sling Launchpad 插件可用于创建包含一组特定捆绑包的可执行 jar 或 war 文件。如果您还没有使用 Maven,它并不像“将项目保存到可执行文件”那么简单,但您可以将 jar 文件生成机制适应您的环境。

于 2012-05-21T08:13:32.077 回答
0

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

于 2012-05-19T13:14:03.080 回答
0

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

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

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

于 2012-05-18T18:28:52.657 回答
0

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

于 2013-05-20T07:34:42.470 回答