java - 在哪里可以找到并安装 org.osgi.framework 包?
问题描述
我正在尝试遵循本教程:
但我不明白目录结构。我在哪里放置 Activator.java 文件?相对于 Activator.java 文件,我应该在哪里放置 MANIFEST.MF?
在本教程中,当我尝试编译 Activator.java 文件时,我收到 org.osgi.framework 不存在的错误。我在哪里可以得到 org.osgi.framework 包,它应该安装在哪里?javac build 命令如何知道如何找到 org.osgi.framework 包?
我正在寻找一个教程来解释什么是 Karaf/Felix 框架以及如何让简单的示例工作。
我也尝试过遵循本教程: http: //kevinboone.net/osgtest.html
但它已过时,并且 Tick 捆绑步骤的构建失败。具体来说,命令:
javac -d target/tick/classes -classpath /path/to/karaf/lib/karaf.jar src/net/kevinboone/osgitest/tick/*.java
没有意义,因为我从karaf 下载站点下载的 karaf 安装中没有文件“karaf.jar” 。
在清单文件中,有一行:
Import-Package: org.osgi.framework
但是这个包似乎在 karaf 安装中不存在?
解决方案
felix 教程已经过时了。
如果您想学习 OSGi,我可以推荐Apache Karaf 演示和教程以及航路示例。
还是要回答问题。org.osgi.framework
您可以在 osgi core spec jar 和 felix jar 中找到该包。因此,在您的编译期间,这些 jar 之一需要位于类路径中。
您不应该手动创建清单。而是使用像 maven-bundle-plugin 这样的插件来创建它。然后,您可以将激活器放置在您想要的任何位置,并且只需要给工具一个提示它在哪里。
不要在 Activator 和其他低级 OSGi API 上投入太多时间。它们不是您应该编写代码的方式。相反,看看声明式服务。它允许使用注释连接您的类,并处理困难的低级任务。
本教程的问题在于它们使用了非常低级的命令,例如javac
. 如今,您应该始终使用诸如 Maven 或 Gradle 之类的构建工具并在那里声明依赖项。我链接的教程和示例都提供了很好的构建,您也可以将它们用于以后的生产代码。
推荐阅读
- python - 带有行内标签的Python plotly_Connection标记
- ios - 如何在 Objective-C 中更改 QR 码的颜色?
- python - 正则表达式 - 在符号后查找数字
- azure-cognitive-search - Azure 认知搜索标准 Lucene 分析器通配符和模糊搜索问题
- c# - c# - 如何从 objectName 创建 Generic T?
- tabulator - 您如何访问或确定设置/需要哪些 Tabulator 参数
- .net-core - 积极的 F# 编译器优化是否只发生在引用的依赖项 + 发布配置上?
- elasticsearch - 弹性搜索 - 节点故障
- discord.net - Discord.net 如何提及角色
- powerbi - 是否可以将 2 个或 3 个 SSAS Cube 连接到 Power bi 并创建视图?