【问题标题】:How to build desktop applications with Apache Karaf/OSGi?如何使用 Apache Karaf/OSGi 构建桌面应用程序?
【发布时间】:2013-05-03 23:54:45
【问题描述】:

我正在为while 构建 OSGi 应用程序,但我真的找不到一些教程来展示使用 OSGi/Karaf 构建桌面应用程序(任何语言)的方法。

我想使用 karaf,因为它可以包装 Felix/Equinox。我发现的大多数教程都是关于企业应用程序(WEB)的。那么是否有任何教程,讨论基于 OSGi/Karaf 构建桌面应用程序?

【问题讨论】:

  • 我认为桌面应用程序没有什么特别之处。我只是在我的包激活器的 start 方法中创建了一个 Swing 窗口,就像我可以在我的 main 方法中一样,它工作得很好。我在激活器的停止方法中破坏了窗口。
  • 嗨巴拉兹。这个问题启发了我,我开始在 Karaf 中玩 Swing(因为 SWT 纯 Equinox 是更自然的方法)。然而到目前为止还没有运气。能否请您粘贴您使用的代码?
  • 嗨巴拉兹!谢谢你的评论......我也很想看看你是如何成功构建这样一个桌面应用程序的!谢谢
  • 使用 OSGi 构建桌面应用程序的最典型方法是使用 Eclipse RCP。我不确定它与 Equinox 的关系有多紧密。
  • 为什么要使用Karaf?它是一个服务器平台,这就是为什么您只能找到有关 Web 应用程序的教程。最好将 OSGi 与 SWT、Swing 或 JavaFX 结合使用。

标签: java osgi equinox apache-felix apache-karaf


【解决方案1】:

抱歉,现在 Karaf 的主要意图是用作服务器,尽管它仍然应该可以在上面启动一些 gui。由于您已经熟悉构建此类捆绑包,我相信您很可能只使用 Karaf 的次要版本并将您的捆绑包放入其中。我不得不承认我以前从未这样做过,所以我不太确定。

【讨论】:

  • 嗨阿奇姆!所以没有其他方法或教程来展示如何使用 OSGi 构建桌面应用程序?
【解决方案2】:

首先,OSGI 是一个组件框架,它还利用了 Java 自诞生以来就缺少的一个特性——运行时版本控制。如果你真的需要它(OSGI),它并不取决于你是开发 WEB 还是桌面应用程序。一般来说,我建议您查看此文档: http://fusesource.com/docs/esb/4.2/deploy_osgi/Build-ModifyMaven.html 在该链接中,您将找到如何将现有的 Maven 项目转换为捆绑包,查看更多章节 - 有信息如何部署 jar,例如Karaf(Karaf 是一个 OSGI 容器)

希望,这会有所帮助

【讨论】:

    【解决方案3】:

    这是一个使用 Apache karaf 的 GUI 应用程序项目示例:

    https://bitbucket.org/lorainelab/igb-fx

    使用 karaf 运行基于 gui 的桌面应用程序可缩短开发时间。开发人员对包进行更改,构建包,然后使用 karaf shell 命令将那个包重新加载到正在运行的应用程序中。无需重新启动整个应用程序即可查看新代码的效果。这就是为什么要使用它。

    我们使用 OSGi 是因为我们希望代码库具有更高的模块化程度,并且因为我们希望支持由针对我们的基因组浏览器 API 编写的第 3 方开发人员开发的动态加载“应用程序”。

    【讨论】:

      猜你喜欢
      • 2012-07-24
      • 2011-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      • 2013-03-21
      • 2018-06-17
      • 1970-01-01
      相关资源
      最近更新 更多