1

对不起,如果这是一个愚蠢的问题。

在 OSGi 中,我们可以在安装包时传递文件 URL:

Bundle myBundle = felix.getBundleContext().installBundle ( "file:/Felix/RootDir/MyBundle.jar" );

URL“file://Felix/RootDir/MyBundle.jar”现在唯一地标识了包。

我们是否允许传递相对 URL?比如下图:

Bundle myBundle = felix.getBundleContext().installBundle ( "file:MyBundle.jar" );

如果是这样,那么这个相对 URL 的父目录是什么?(是 felix.cache.rootdir 吗?)。

如果允许相对 URL,那么 Felix 是否在内部将相对 URL 转换为绝对 URL?也就是说,如果我这样做:

String locationID = myBundle.getLocation();

它会返回绝对 URL 还是相对 URL?

(是的,我知道每个捆绑包也有一个很长的 int ID)

4

1 回答 1

1

Felix 的“当前目录”可能是您启动它时生效的目录。此外,框架不得更改您为安装包提供的位置字符串。所以它不会将提供的位置字符串转换为其他值。

于 2012-08-08T16:49:23.600 回答