当前位置: 首页 > 知识库问答 >
问题:

如何获取jar[duplicate]文件的ResourceStream

萧晔
2023-03-14

我如何使用getResourceAsStream方法获得一个jar的文件(在maven依赖项中)?

我尝试了以下操作,但返回空:

InputStream is = App.class.getResourceAsStream("jquery.js");

共有1个答案

袁鸿畅
2023-03-14

getResourceStream()返回NULL可能有多种原因。

  • 您应该在以“/”开头的jar文件中提供完整的路径,否则它将恢复为NULL。
  • 如果主类文件和jar文件不是由同一个类加载器加载的,那么它将返回NULL。在这种情况下,您需要使用与加载jar文件相同的类加载器。要对此进行测试,请使用jar文件中的类文件获取类加载器,并使用该类加载器使用getResourceStream方法。
  • 另外,由于依赖关系在maven中,请确保依赖关系是运行时的。而不是编译时。范围不应为“compile”
 类似资料:
  • 我正在尝试获取运行Runnable JAR文件的位置 但结果是: 而JAR文件位于 我也试过 但结果是: 所以基本上我想要的是JAR文件的路径,而不是类路径,而不是文件名。 有办法吗?

  • 问题内容: 我在JAR文件中有一个文件。这,例如。 我该如何访问?我的源代码是: 问题答案: 您不能使用File,因为此文件在文件系统上并不独立存在。相反,您需要getResourceAsStream(),如下所示:

  • 问题内容: 我在项目的根目录中有一个资源文件夹/程序包,我“不想”加载某个文件。如果我想加载某个文件,我将使用class.getResourceAsStream,我会很好的!我实际上想要做的是在资源文件夹中加载一个“文件夹”,循环访问该文件夹中的文件,并获取每个文件的流,并读取内容…假设在运行时之前未确定文件名… 我该怎么办?有没有一种方法可以获取jar文件中“文件夹”中文件的列表?请注意,带有资

  • 当我使用相对路径时,我可以从Eclipse运行Java程序。但是,当我将其作为JAR文件运行时,该路径不再有效。在我的src/components/SettingsWindow中。我有:

  • 问题内容: 我有一堆iReport源代码(jrxml)通过以下路径位于工作区中: 当我将源代码打包到jar文件中时。我将拥有以下文件结构目录: 在我的源代码中,我具有以下代码来验证jrxml文件的存在: 当我通过命令执行此jar文件时: 我碰到一个错误提示,说特定的jrxml_file不存在。 我的疑问: 我只是想知道我是否允许读取位于MyJar.jar中的jrxml_file? 在读取jrxml

  • 启动jar时,控制台会说找不到文件,也没有加载字体。我怎样才能解决这个问题? 我得到了这个密码: