gpt4 book ai didi

java - 来自 OSGi 包的相对路径

转载 作者:行者123 更新时间:2023-11-29 08:17:50 25 4
gpt4 key购买 nike

我有一个更新程序包,它在特定文件夹“包”中查找并检查要安装的新包和更新当前安装的包。在一个父目录中,OSGi框架在“/framework”目录下,updater bundle在“/system”目录下,需要检查的目录是同一个父目录下的“/bundles”目录。在更新程序包中,创建了一个具有相对路径的文件对象,但它不适用于“./bundles”字符串,而且我不知道该路径应该与哪个 jar 文件相关。我将不胜感激有关此问题的任何见解或信息..谢谢,丹尼斯

编辑:已经想通了。看起来路径是根据我用来启动 Equinox 的 Ruby 脚本解析的。所以解析路径是一个目录,我通过使用 Ruby 系统向它传递一个“-console”标志来启动 Equinox。感谢您的回答,丹尼兹

最佳答案

正在执行新文件("./bundles") resolves针对当前工作目录。

您可以通过自己获取输入流并调用 BundleContext#installBundle(String, InputStream) 来安装您的包。

OSGi 本身不对文件系统布局做任何假设,或者包甚至在磁盘上。但是如果您使用 Equinox 作为您的框架,您可以根据“osgi.install.area”解析您的相对路径。 Location service可以给你这个。然后使用绝对路径安装包。

或者,您可以获得系统 bundle (BundleContext.getBundle(0)),并使用 FileLocator(来自 org.eclipse.equinox.common)在磁盘上找到它。

关于java - 来自 OSGi 包的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3084114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com