在哪里可以找到并安装org.osgi.framework包?

问题描述 投票:2回答:1

我正在尝试按照本教程:

apache felix tutorial #1

但我不明白目录结构。我在哪里放置Activator.java文件?哪里,相对于Activator.java文件,我放置MANIFEST.MF?

在本教程中,当我尝试编译Activator.java文件时,我收到org.osgi.framework不存在的错误。我在哪里可以获得org.osgi.framework包以及它应该安装在哪里? javac构建命令如何知道如何找到org.osgi.framework包?

我正在寻找一个解释Karaf / Felix框架是什么以及如何使简单示例工作的教程。

我也尝试过这个教程:http://kevinboone.net/osgitest.html

但它已过期,并且Tick捆绑步骤的构建失败。具体来说,命令:

javac -d target/tick/classes -classpath /path/to/karaf/lib/karaf.jar src/net/kevinboone/osgitest/tick/*.java

没有意义,因为我从kazxswpoi下载的karaf安装中没有文件“karaf.jar”。

在清单文件中,有一行:

karaf download site

但这个包似乎不存在于karaf安装中?

java osgi apache-karaf apache-felix
1个回答
4
投票

felix教程非常过时。

如果你想学习OSGi我可以推荐Import-Package: org.osgi.framework Apache Karaf demo以及tutorials的例子。

还是要回答这个问题。你可以在osgi core spec jar和felix jar中找到包enroute。因此,在编译期间,这些jar中的一个需要在类路径中。

您不应该手动创建清单。而是使用像maven-bundle-plugin这样的插件来创建它。然后,您可以将Activator放置在任何您想要的位置,只需要为工具提供一个提示。

不要在Activator和其他低级OSGi API上投入太多时间。它们不是您编写代码的方式。而是看看声明性服务。它允许使用注释来连接您的类,以处理困难的低级任务。

本教程的问题是他们使用像org.osgi.framework这样的低级命令。现在你应该总是使用Maven或Gradle之类的构建工具并在那里声明依赖项。我链接的教程和示例都提供了很好的构建,您也可以将它们用于以后的生产代码。

© www.soinside.com 2019 - 2024. All rights reserved.