打成jar包运行之后报错,java.io.FileNotFoundException:(已解决)

这篇具有很好参考价值的文章主要介绍了打成jar包运行之后报错,java.io.FileNotFoundException:(已解决)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天项目测试时,遇到一个问题,因为第一次遇到,所以记录一下:

1、问题情况如下:

        存放在项目resources目录下的静态资源文件,需要在接口调用时,将其copy到其他文件位置,但是打包后运行,调用时报错FileNotFoundException。

        开发中代码调试没有问题,但是打成jar包之后,在测试服务器运行时就报错,报错情况如下:

java.io.FileNotFoundException: 
    class path resource [db/aixing.db] cannot be resolved to 
    absolute file path because it does not reside in the file system:
    jar:file:/C:/Users/office/Desktop/card_active-0.0.1-SNAPSHOT.jar!/
    BOOT-INF/classes!/db/aixing.db

 2、看到日志后,第一反应是资源文件不存在,打包时没打进去丢失了,但取jar包看了之后发现有文件。

java打包jar运行程序出问题,java学习中问题记录,java,数据库,spring boot,intellij idea

 3、想了一下之后,发现报错的文件路径不太对

java打包jar运行程序出问题,java学习中问题记录,java,数据库,spring boot,intellij idea

 为什么多了两个感叹号,个人猜测是打包机制的问题,会造成路径不匹配?(希望了解的朋友指教一二)

4、上网查询之后,找到解决办法。

java打包jar运行程序出问题,java学习中问题记录,java,数据库,spring boot,intellij idea

这是我获取文件路径方式,这样似乎不对,开发阶段调试没问题,打成jar包运行有错。

InputStream inputStream = CardActiveApplication.class.getClassLoader().getResourceAsStream("db/aixing.db");

 上面是网友提供的获取文件路径方式,尝试之后发现可以

5、结果总结

开发中,编译器会自动将代码和静态资源动态编译到target目录下,在使用时可以通过getfile()读到所需的文件的,但打包后,由于某种原因,getfile()失效了。此时先使用getClassLoader()获取编译后类的相对路径等信息,再使用getResourceAsStream()可以动态获取资源的文件流。文章来源地址https://www.toymoban.com/news/detail-609914.html

到了这里,关于打成jar包运行之后报错,java.io.FileNotFoundException:(已解决)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 5 | Java Spark WordCount打成Jar 包测试

    步骤 1:准备 WordCount 代码 首先,确保 编写了 WordCount 代码,已经提供了正确的输入文件路径。

    2024年02月10日
    浏览(24)
  • 解决Springboot项目打成jar包后获取resources目录下的文件报错的问题

    前几天在项目读取resources目录下的文件时碰到一个小坑,明明在本地是可以正常运行的,但是一发到测试环境就报错了,说找不到文件,报错信息是:class path resource [xxxx] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:xxxx.jar!/BOOT-INF/classes!xxxx。 看了

    2024年02月11日
    浏览(48)
  • 文件未找到异常 [java.io.FileNotFoundException

    文件未找到异常 [java.io.FileNotFoundException 【解决文件丢失问题:深入了解Java.io.FileNotFoundException异常的原因和解决方案】 引言: 当您在编写Java应用程序时,可能会遇到一个常见的异常,即文件未找到异常(java.io.FileNotFoundException)。这个异常表示您的程序无法找到所需的文件

    2024年02月09日
    浏览(32)
  • 上传文件提示java.io.IOException: java.io.FileNotFoundException:(系统找不到指定的路径。)

    关键信息: java.io.IOException: java.io.FileNotFoundException: C:UsersbrendonAppDataLocalTemptomcat.6510816303036534023.8099workTomcatlocalhostROOTinvoiceoriginalfile2023-02-1373432e18330dec9a05af2e74d068bfba83e0a88d.pdf (系统找不到指定的路径。) Caused by: java.io.FileNotFoundException: C:UsersbrendonAppDataLocalTemptomcat

    2024年02月12日
    浏览(30)
  • springboot异步文件上传获取输入流提示找不到文件java.io.FileNotFoundException

    springboot上传文件,使用异步操作处理上传的文件数据,出现异常如下: 这个是在异步之后使用传过来的MultipartFile对象尝试调用getInputStream方法发生的异常。 java.io.FileNotFoundException: C:UsersAdministratorAppDataLocalTemptomcat.8082.9218483334936865663workTomcatlocalhostsdBusinessOnlineSchoolupl

    2024年02月12日
    浏览(41)
  • Caused by: java.io.FileNotFoundException: class path resource [datasourc.properties] cannot be opene

    异常: Caused by: java.io.FileNotFoundException: class path resource [文件名] cannot be opened because it does not exist 原因: 资源无法打开,因为它不存在 在Maven项目里面资源 默认生成的类路径是src/main/java ,如果你所需要的文件不在这个目录下,项目编译器输出里就不会有该文件(即便你的项目

    2024年02月07日
    浏览(34)
  • 已解决java.io.FileNotFoundException: E:\work\work (拒绝访问。)的正确解决方法,亲测有效!!!

    已解决java.io.FileNotFoundException: E:workwork (拒绝访问。)的正确解决方法,亲测有效!!! 这个错误提示表示在指定路径下找不到名为\\\"work\\\"的文件。可能的原因是路径错误或文件不存在。请确保路径和文件名都是正确的,并且文件确实存在于指定的位置。 这个错误提示表示在指

    2024年02月07日
    浏览(35)
  • 解决java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.的错误

    今天在运行同事给我的项目,但在项目启动时,报出如下错误: 即 java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. 通过 java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. 错误可知,这是未设置 HADOOP_HOME 和 hadoop.home.dir 。 HADOOP_HOME 和 hadoop.home.dir 主要是干嘛的呢

    2024年02月06日
    浏览(33)
  • IDEA打成JAR包

    一、场景需求 ​ 当我们需要将Java项目文件转为exe文件时,需要首先将Java项目文件打包成jar文件。这里我们以常用的Java开发IDE-IDEA为例,讲解打包jar文件的具体步骤。 二、具体步骤 在项目代码功能都测试无误后,接下来进行工程文件的打包。 菜单栏点击File后,选择Project

    2024年02月16日
    浏览(42)
  • docker 将jar包打成docker镜像

    构建三步骤: 编写Dockerfile文件 docker build 命令构建镜像 docker run 根据镜像运行容器实例 docker官网 不废话,直接上案例,这是本人在公司使用的打镜像方式,与上面的构建步骤略有不同。 以下文件都是在同一个目录文件夹下!!! 1、编写Dockerfile文件,通过Dockerfile文件将j

    2024年02月03日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包