繁体   English   中英

如何从命令行运行osgi模块?

[英]How to run an osgi module from the command line?

我正在尝试使用以下命令从命令行运行OSGI模块:

java -jar target/module.jar -console

但是我总是得到

no main manifest attribute, in target/module.jar

当我提取jar文件时,MANIFEST.MF是否存在?

我忘记了哪个清单?

您不能简单地单独运行捆绑软件。 捆绑软件需要在OSGi框架内运行。 因此,例如,您可以下载Apache felix,然后将捆绑软件放入felix目录中,该目录可以选择要加载的捆绑软件。 在这种情况下,您将启动felix,然后felix将加载您的捆绑软件。

Peter的建议是在bndrun文件中定义一组捆绑软件和其他设置,并创建一个包含OSGi框架以及捆绑软件的胖子。 不错的是,bnd(tools)提供了很好的工具来专业地做到这一点。

因此,虽然使用第一个解决方案启动并运行起来更快,但它总是需要人工完成。 bndtools方法可以完全自动化maven构建中的打包。从长远来看,这可能是您想要的。

我创建了一个示例项目 ,为maven显示了这一点(我猜您在提到目标目录时使用了maven)。

您需要创建一个可执行的JAR。 然后,此JAR包括OSGi的启动器,框架,并且知道在哪里可以找到模块。

Bndtools为此有一个导出任务。 您必须创建一个bndrun文件,添加初始需求,解决该问题,然后将其导出。 您也可以使用Gradle使它自动化。

您可以按照OSGi enRoute快速入门教程了解如何将OSGi应用程序构建为可执行JAR。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM