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

3
我正在尝试跟随这个教程: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 bundle步骤的构建失败了。具体来说,这个命令:
javac -d target/tick/classes -classpath /path/to/karaf/lib/karaf.jar src/net/kevinboone/osgitest/tick/*.java

由于我从karaf下载网站下载的karaf安装包中没有“karaf.jar”文件,因此这个解释没有意义。

在清单文件中,有这样一行:

Original Answer翻译成"最初的回答"

Import-Package: org.osgi.framework

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

从离题部分:要求我们推荐或寻找书籍、工具、软件库、教程或其他离线资源的问题,因为它们往往会吸引有意见的答案和垃圾邮件,所以在Stack Overflow上是不合适的。相反,描述问题以及已经采取的解决方法。因此,告诉我们你正在关注的教程已经损坏,这几乎是无关紧要的,而且不在我们的能力范围内解决。也许联系教程作者更新它,使其再次正常工作。 - Lino
你使用集成开发环境(IDE)完成教程并不意味着你不理解基础知识。有时候,这甚至可以帮助你。我强烈建议你使用例如 Eclipse IDE。它将帮助你理解项目结构以及其他重要的事情。 - lealceldeiro
关于你的问题“我应该把Activator.java文件放在哪里?”以及“在Activator.java文件相对位置中,我应该把MANIFEST.MF文件放在哪里?”... 只需要将 Activator.java 文件放在项目类路径中(通常是 src/your/package/names),而将 MANIFEST.MF 文件放在 META-INF 文件夹内。 - lealceldeiro
我确实尝试联系教程作者,但是我没有收到回复。 - user7470635
我也愿意跟随使用Eclipse的教程,但是我还没有找到一个可行的。 - user7470635
1个回答

4

felix 教程已经非常过时了。

如果你想学习OSGi,我可以推荐 Apache Karaf demo教程 以及 enroute 示例。

回答问题。在OSGi核心规范jar和felix jar中都可以找到org.osgi.framework包。所以需要在编译时将其中一个jar放入类路径中。

不应该手动创建清单文件。相反地,应使用插件例如maven-bundle-plugin来创建它。然后可以将Activator放置在任何位置,并且只需给工具一个提示即可。

不要花太多时间在Activator和其他低级OSGi API上。这并不是你编写代码的正确方式。相反,看看声明式服务。它允许使用注释连接类并处理困难的底层任务。

教程的问题在于它们使用像javac这样的非常低级别的命令。现在应该始终使用构建工具(例如Maven或Gradle)并在其中声明依赖项。我链接的教程和示例都提供了漂亮的构建,您也可以将其用于以后的生产代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接