是否可以将我的OSGi项目(包含少量软件包)保存到单个可执行文件中,类似于.exe文件,因此我可以将其复制并运行到任何具有JVM的PC上。 我知道通常的方法是打开命令提示符并逐个安装所需的bundle / jar文件。但由于我的项目包含了不少捆绑包,因此该方法看起来很乏味。
提前完成。
答案 0 :(得分:2)
你绝对可以做得比逐个安装捆绑包更好,即使你没有像.exe这样的单个“本机可执行”存档。有许多商业和开源OSGi应用程序作为zip存档发布;用户解压缩归档,然后调用java -jar some.osgi.jar
或运行shell脚本。
OSGi运行时有几种方法可以计算出要安装的bundle。一些特定于OSGi框架(例如Equinox或Felix),而另一些则更通用。如果您正在使用Equinox,则可以创建一个config.ini
文件并将其放在名为configuration
的文件夹中,与OSGi jar相同。列出要在osgi.bundles
属性中启动的所有包。 config.ini文件可以列出要启动的所有捆绑包,以及您可能需要的任何other configuration properties。
Eclipse还允许您在config.ini中定义一组最小的包,并使用configurator启动plugins文件夹中的所有内容。同样,如果您使用的是Felix,auto-deploy directory中的所有捆绑包都会自动启动。您还可以查看Felix File Install,它允许您将捆绑包放入受监视的文件夹中进行安装(一旦安装了FileInstall本身)。尽管有这个名字,FileInstall仍适用于Equinox和Felix。
答案 1 :(得分:2)
这类似于creating a complete OSGi application with Felix & Maven - Sling Launchpad Plugin可用于创建包含一组特定包的可执行jar或war文件。如果您还没有使用Maven,那么它并不像“将项目保存到可执行文件”那么简单,但您可能会将jar文件生成机制调整到您的环境中。
答案 2 :(得分:0)
Eclipse有产品的概念。您可以从现有捆绑包中创建产品,然后可以将产品导出为可执行文件。有关该产品的详细信息,请参阅http://www.vogella.com/articles/EclipseRCP/article.html
中的Eclipse RCP教程本教程介绍了Eclipse RCP应用程序,但您不需要那里的所有内容 - 可以在不创建整个Eclipse应用程序的情况下创建产品。
这限制了您的选择,因为您或多或少地将Eclipse Equinox绑定为OSGi运行时,但是从它创建可执行产品可能是一个可行的权衡。
答案 3 :(得分:0)
感谢名单。 根据上面的答案,我在本书中遇到了第9章。 http://my.safaribooksonline.com/9780321561510/ch09#ch09 它通过产品配置导出项目的教程。 这正是我所需要的。 :)
答案 4 :(得分:0)
如果使用bnd(工具),则可以从bndtools GUI或bnd命令行(bnd package xyz.bndrun; java -jar xyz.jar)将项目导出到可执行jar。生成的jar文件包含所有包,启动程序和框架。