Java 在清单文件中使用外部捆绑包本地化路径

Java 在清单文件中使用外部捆绑包本地化路径,java,eclipse,plugins,properties,runtime,Java,Eclipse,Plugins,Properties,Runtime,MANIFEST.MF文件包含一个条目,用于定义在运行时加载哪些*.properties文件。这些条目定义名称和相应的属性文件,用于转换以前缀“%”开头的插件字符串,如“%plugin.name” plugin.properties包含一行,如 %plugin.name=Runtime Plugin 属性文件的名称也可以是application.properties,而不是我必须定义的名称 Bundle-Localization: application 当属性文件位于插件子目录“prope

MANIFEST.MF文件包含一个条目,用于定义在运行时加载哪些*.properties文件。这些条目定义名称和相应的属性文件,用于转换以前缀“%”开头的插件字符串,如“%plugin.name”

plugin.properties包含一行,如

%plugin.name=Runtime Plugin
属性文件的名称也可以是application.properties,而不是我必须定义的名称

Bundle-Localization: application
当属性文件位于插件子目录“properties”中时,我可以定义

Bundle-Localization: properties/application

我的问题: 我可以在插件之外定义一个包本地化路径吗

Bundle-Localization: ../properties/application
看起来,正在搜索属性文件路径的ManifestLocalization对象确实向ZipFile请求路径。ZipPath不支持此功能


如何解决此问题?

不,您不能定义插件外部的路径。尽管除了包之外还考虑了片段

通常,捆绑包不绑定到磁盘上的某个位置,因此您无法真正定义像../properties这样的路径应该解析到哪里。例如,使用
BundleContext\installBundle(字符串位置,InputStream输入)
。location参数是bundle的标识,并且没有与之相关的语义。捆绑包的内容从输入流中读取。那么,包之外的路径意味着什么

Bundle-Localization: ../properties/application