Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OSGi束的相对路径_Java_File_Path_Osgi - Fatal编程技术网

Java OSGi束的相对路径

Java OSGi束的相对路径,java,file,path,osgi,Java,File,Path,Osgi,我有一个更新包,可以在特定文件夹“bundle”中查找,并检查要安装的新bundle和当前安装的bundle的更新。在父目录中,OSGi framework位于“/framework”目录中,更新程序包位于“/system”目录中,需要检查的目录是同一父目录中的“/bundles”目录。在updater bundle中,创建了一个具有相对路径的文件对象,但它不使用“/bundles”字符串,我不知道该路径应该与哪个jar文件相对。如果您能提供有关此问题的任何见解或信息,我将不胜感激。。 谢谢 丹

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

编辑:已经计算出来了。看起来路径是根据我用来启动Equinox的Ruby脚本解析的。所以ResolutionPath是一个目录,我通过使用Ruby系统传递“-console”标志来启动Equinox。
感谢您的回答,Deniz取决于您的OSGi配置和实现。它可能与许多地方有关,最有可能的地方是框架位置。为什么不通过创建具有相对路径的文件并检查

new File("./bundles").getAbsolutePath();

希望这有帮助

取决于您的OSGi配置和实现。它可能与许多地方有关,最有可能的地方是框架位置。为什么不通过创建具有相对路径的文件并检查

new File("./bundles").getAbsolutePath();
希望这有帮助

对当前工作目录执行新文件(“./bundles”)

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

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

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

根据当前工作目录创建新文件(“./bundles”)

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

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


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

已经解决了。看起来路径是根据我用来启动Equinox的Ruby脚本解析的。所以ResolutionPath是一个目录,我通过使用Ruby系统传递“-console”标志来启动Equinox。
谢谢你的回答,丹尼斯已经明白了。看起来路径是根据我用来启动Equinox的Ruby脚本解析的。所以ResolutionPath是一个目录,我通过使用Ruby系统传递“-console”标志来启动Equinox。 谢谢你的回答,Deniz

以下是春分:以下是春分: