代码之家  ›  专栏  ›  技术社区  ›  Markus Lausberg

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

  •  1
  • Markus Lausberg  · 技术社区  · 15 年前

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

    Bundle-Localization: plugin
    

    plugin.properties than包含一行

    %plugin.name=Runtime Plugin
    

    属性文件也可以有名称application.properties,而不是我必须定义的

    Bundle-Localization: application
    

    当属性文件在插件子目录“properties”中时,我可以定义

    Bundle-Localization: properties/application
    

    我的问题: 我可以定义插件外部的包本地化路径吗,比如

    Bundle-Localization: ../properties/application
    

    似乎,正在搜索属性文件路径的manifest本地化对象确实向zipfile请求该路径。ZipPath不支持此功能。

    我如何解决这个问题?

    1 回复  |  直到 12 年前
        1
  •  3
  •   Andrew Niefer    15 年前

    不,您不能定义插件外部的路径。尽管碎片被认为是在包裹之外的。

    通常,捆绑包不会绑定到磁盘上的某个位置,因此您不能真正定义像../properties这样的路径应该解析到哪里。例如,考虑使用 BundleContext#installBundle(String location, InputStream input) . location参数是包的标识,没有与之相关的语义。将从输入流中读取包的内容。那么,束外的路径意味着什么呢?