【问题标题】:How to get a resource from a specific jar如何从特定的 jar 中获取资源
【发布时间】:2015-04-02 21:01:03
【问题描述】:

我有几个 jar 包含一些同名的资源。假设我有 a.jarb.jar,它们都包含 resource.xml。 我知道我可以获取资源调用

getClass().getClassLoader().getResourceAsStream("resource.xml");

但 AFAIK 可能会从 a.jar 或 b.jar 返回资源。我想传递jar文件名并从指定的jar中获取资源。

【问题讨论】:

标签: java


【解决方案1】:

确保 a.jar 在类路径中位于 b.jar 之前。

如果你不能保证你可以做这样的事情

    ...
    Enumeration<URL> urls = getClass().getClassLoader().getResources("resource.xml");
    while(urls.hasMoreElements()) {
        URL url = urls.nextElement();
        if (url.getPath().contains("/a.jar")) {
            return url;
        }
    }
    return null;

【讨论】:

  • 我不能保证。
【解决方案2】:

如果它们在不同的包中(检查你的 jar 清单),你可以使用包名来访问 R 类。

举个例子:

getResources().getString(<com.mycompany.mypackage>.R.string.yourstring)

【讨论】:

猜你喜欢
  • 2011-04-19
  • 1970-01-01
  • 2015-01-12
  • 2019-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-09
  • 2017-08-23
相关资源
最近更新 更多