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

无法从Jar文件中读取资源

姚俊贤
2023-03-14

我很难弄清楚这个问题,我几乎什么都试过了。

我希望我的程序从Jar文件中读取两个资源,并且它将在eclipse中运行良好。但是当我从命令提示符运行jar时,它会给出空指针异常。

结构:

src/main/java/App。JAVA

src/main/resources/properties/application。属性

src/main/resources/spring/applicationContext。xml

代码:

阅读申请表。属性

财产。加载(App.class.getResourceAsStream(“/properties/application.properties”);

阅读应用程序上下文。xml

Context=new ClassPathXmlApplication Context("/Spring/Applicationontext.xml");

错误:

加载应用程序时出错。属性java。lang.NullPointerException

我能做错什么?

共有2个答案

太叔鹏云
2023-03-14

在你的结构中,你展示了。java是,但你错过了。班它所在的路径是类加载器将使用的路径。应该有你的资源

编辑:澄清一下。在你的帖子中,你提到了应用程序的路径。JAVA但类加载器只关心应用程序。同学们,假设你们有

\src
 |...(App.java and whatever, these will be ignored)
\bin
 |
 |--App.class
 |
\bin\resources\...(properties and whatever, these will be read)

您应该确保bin下有属性和Spring目录。如果您在src中只有. java,它将被类加载器忽略。

辛锦
2023-03-14

假设这些都在运行时类路径上可用的jar文件中,第一个示例,getResourceAsStream()可能会失败,因为您没有在jar文件中指定完整路径。(还有一个常见的错误是,你没有领先,但你看起来还不错。)例如。:

properties.load(App.class.getResourceAsStream("/src/main/resources/properties/application.properties"));

但是,如果您不确定文件在构建的jar文件中的位置(什么路径),请尝试

jar -tvf <your-jar>.jar

看看里面到底有什么。

无法对ClassPathXmlApplicationContext发表评论;不是Spring开发者。

 类似资料:
  • 我想从我的jar中读取一个资源,如下所示: 在Eclipse中运行它时工作良好,但如果我将它导出到一个jar中,然后运行它,就会出现一个IllegalArgumentException: 我真的不知道为什么,但通过一些测试我发现如果我改变 至 然后它的工作方式相反(它在jar中工作,但不能在eclipse中工作)。 我使用的是Eclipse,我的文件所在的文件夹位于类文件夹中。

  • 我有以下前缀: 有办法 在intellij中,idea工作正常,但启动jar时出现错误: JAVA尼奥。文件NoSuchFileException:文件:/app。罐子/BOOT-INF/classes/模板/请求订单/未标记/请求订单未标记。pdf

  • 问题内容: 我想像这样从我的jar中读取资源: //Read the file 并且在Eclipse中运行它时效果很好,但是如果我将其导出到jar中运行,则会出现: 我真的不知道为什么,但是经过一些测试,我发现我是否改变了 至 然后它的作用相反(它在jar中起作用,但在Eclipse中不起作用)。 我正在使用Eclipse,并且包含我的文件的文件夹位于类文件夹中。 问题答案: 而不是尝试将资源作为

  • 问题内容: 我正在尝试从作为桌面应用程序运行的单独jar中访问jar文件中的XML文件。我可以获取所需文件的URL,但是当我将其传递给FileReader(作为字符串)时,我得到了FileNotFoundException,上面写着“文件名,目录名或卷标语法不正确”。 作为参考,我毫不费力地从同一个jar中读取图像资源,并将URL传递给ImageIcon构造函数。这似乎表明我用来获取URL的方法是

  • 我在Eclipse中有一个简单的maven项目。应用程序包含文件:src/main/Resources/test.txt.我想读取文件并将其写入输出。它在Eclipse中工作,但在创建jar文件后不能从命令行。如何配置项目以两种方式工作。我错在哪里?不正确的jar文件、java代码、清单、maven配置? 应用程序结构: 应用程序结构 运行: 错误: Java代码: pom.xml: fileRe

  • 问题内容: 我在abc.jar的类路径中有一个文件X.json。abc.jar中有一个readFile方法,该文件读取为 如果我从jar的上下文中运行它,即在abc.jar内的某个文件中的main方法中运行它,它将很好地读取 但是,当从abc.jar外部从其他代码中调用readFile时,它将失败 如何通过从jar的上下文外部调用readFile方法获取File对象? 问题答案: 到部署时,这些资