gpt4 book ai didi

java - 读我自己的Jar list

转载 作者:行者123 更新时间:2023-12-03 05:21:12 25 4
gpt4 key购买 nike

我需要阅读Manifest文件,该文件提供了我的类(class),但是当我使用时:

getClass().getClassLoader().getResources(...)

我从加载到Java运行时的第一个 MANIFEST中获取 .jar
我的应用程序将从applet或Webstart运行,
因此,我想我将无法访问自己的 .jar文件。

我实际上想从开始的 Export-package中读取 .jar属性
Felix OSGi,所以我可以将这些软件包公开给Felix。有任何想法吗?

最佳答案

您可以执行以下两项操作之一:

  • 调用getResources()并遍历返回的URL集合,将其读为 list ,直到找到您的URL:
    Enumeration<URL> resources = getClass().getClassLoader()
    .getResources("META-INF/MANIFEST.MF");
    while (resources.hasMoreElements()) {
    try {
    Manifest manifest = new Manifest(resources.nextElement().openStream());
    // check that this is your manifest and do what you need or get the next one
    ...
    } catch (IOException E) {
    // handle
    }
    }
  • 您可以尝试检查getClass().getClassLoader()是否是java.net.URLClassLoader的实例。 Sun的大多数类加载器包括AppletClassLoader
    然后,您可以对其进行转换并调用findResource()(至少对于applet而言是已知的),以直接返回所需的 list :
    URLClassLoader cl = (URLClassLoader) getClass().getClassLoader();
    try {
    URL url = cl.findResource("META-INF/MANIFEST.MF");
    Manifest manifest = new Manifest(url.openStream());
    // do stuff with it
    ...
    } catch (IOException E) {
    // handle
    }
  • 关于java - 读我自己的Jar list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63414483/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com