【问题标题】:URLClassLoader not loading the resourcesURLClassLoader 未加载资源
【发布时间】:2017-10-09 11:03:38
【问题描述】:

我编写了一个程序来管理一个作为 jar 提供的插件。

我使用URLClassLoader 加载插件类,它按预期工作。 我添加了一些存储在插件 jar 中的资源(XML 文件)。

如果我调用一个不使用资源的方法,一切正常,但如果我调用一个使用资源的方法,我会得到一个FileNotFoundException

【问题讨论】:

  • 发布你的一些代码会有帮助
  • invoke() 方法:加载类,getResourceAsStream():load 资源,有什么方法可以关联这两个方法,我希望调用方法引用到 getResourceAsStream 方法

标签: java exception jar classloader urlclassloader


【解决方案1】:

您的插件 jar 文件中打包的资源由您的 URLClassLoader 加载。因此,要访问这些资源,您应该使用特定的 URLClassLoader 实例来加载它们。

例如:

URL[] urls = ...//urls to jar classes and resources
URLClassLoader uClassLoader = new URLClassLoader(urls);
Class loadedClass = uClassLoader.loadClass("CLASS_NAME");

要获取 jar 中存在的资源,

loadedClass.getClassLoader().getResource()

注意,这里URLClassLoader 实例用于加载资源。

有关加载资源的更多详细信息:

希望这能解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 2023-03-27
    • 2023-03-31
    • 2011-08-04
    相关资源
    最近更新 更多