1 问题描述

通过源码运行时,一般使用如下方式读取资源文件:

String str = "1.jpg";

资源文件与源码文件放在同一目录下,或者拥有同一父级目录:

String str = "a/b/1.jpg";

这样直接编译运行没有问题,但是打成JAR包后会读取不了,直接抛空指针异常。

2 解决办法

使用URL或者InputStream进行读取:

URL url = getClass().getClassLoader().getResource("a/b/1.jpg");
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("a/b/1.png");

注意不能在路径前加/

URL url = getClass().getClassLoader().getResource("/a/b/1.jpg");
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("/a/b/1.png");

这样读取出来是nullgetClass().getClassLoader().getResource()从源码运行的URL如下:

从JAR包运行的URL如下:

测试系统Win10,从源码运行的话有一个file:前缀,而从JAR包运行有一个jar:file:前缀。 前缀一般没有影响,一般都能直接通过URL获取文件,比如在SwingJFrame中设置图标:

mainFrame.setIconImage(new ImageIcon(getClass().getClassLoader().getResource("image/icon.png")).getImage());

如果只能通过String处理路径,需要把前缀file:或者jar:file:去掉,JAR的话可以结合JarFile类读取文件。

getresourceasstream 路径_Java 获取资源文件路径相关推荐

  1. java get image获取根路径_Java 获取资源文件路径

    1 问题描述 通过源码运行时,一般使用如下方式读取资源文件: String str = "1.jpg"; 资源文件与源码文件放在同一目录下,或者拥有同一父级目录: String s ...

  2. java 获取包路径_java获取java文件路径的四种方法

    java获取java文件路径的四种方法 发布时间:2020-04-17 11:03:45 来源:亿速云 阅读:750 作者:小新 今天小编给大家分享的是java获取java文件路径的四种方法,很多人都 ...

  3. java 获取文件版本号_Java 获取资源文件路径

    1 问题描述 通过源码运行时,一般使用如下方式读取资源文件: String str = "1.jpg"; 资源文件与源码文件放在同一目录下,或者拥有同一父级目录: String s ...

  4. python获取某文件路径_Python获取当前文件路径

    一. Python 获取当前文件路径方法 2. sys.path[0] 获取文件当前工作目录路径(绝对路径) sys.argv[0]|获得模块所在的路径(由系统决定是否是全名) 若显示调用python ...

  5. Java中获取资源文件路径

    Java路径 Java中使用的路径,分为两种:绝对路径和相对路径.具体而言,又分为四种: 一.URI形式的绝对资源路径 如:file:/D:/java/eclipse32/workspace/jbpm ...

  6. java 访问路径_java获取项目访问路径的相关方法

    java获取项目访问路径的相关方法 刘振兴 代码分享 2016年02月11日 6292 暂无评论 在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中 ...

  7. java 访问路径_java获取项目访问路径的方法

    在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中,例如: WebRoot/WEB-INF/classes 当然你也可以用System.getPro ...

  8. java获取绝对路径_JAVA获取项目绝对路径

    另,Class类还有一个getResourceAsStream方法,记得以前有个项目要读取在同一个包内的一个xml,就用的这个. 1.如何获得当前文件路径 常用: (1).Test.class.get ...

  9. java linux路径_Java,Linux文件路径

    斜杠和反斜杠 正斜杠,又称左斜杠,符号是"/": 反斜杠,也称右斜杠,符号是"\". 在Unix/Linux中,路径的分隔采用正斜"/",比 ...

最新文章

  1. C#如何生成缩略图、水印
  2. 技术架构演进|0到千万DAU,微淘如何走过?
  3. 如何用更短时间写出高质量的博客文章经验分享
  4. Ablation study 是什么意思?
  5. android 多图片优化工具,总结Android App内存优化之图片优化
  6. node的里html中写script报错,内置对象 · TypeScript 入门教程
  7. 【RAC】 RAC For W2K8R2 安装--创建ASM磁盘组(六)
  8. html css调用自定义字体,html css使用特殊自定义字体避免侵权
  9. 专利学习——常用必备知识
  10. 提示参数错误html页面,网页上有错误怎么修复提示参数错误
  11. 虚拟机Ubuntu18简易配置三(安装搜狗输入法)
  12. compass watch出错
  13. 上位机软件定制开发,如何选择服务商
  14. matlab条件统计个数,matlab计算条件概率
  15. php中通快递下单 代码,中通开放平台 预约下单接口php
  16. 单机版pc端车牌识别
  17. 架构师的工作都干些什么?!想做架构师必看!
  18. 危险进程集粹(附说明)
  19. Java异常处理流程
  20. 百度权重怎么查询?哪里可以查询百度权重?

热门文章

  1. 关于练习美剧听写中碰到的问题
  2. python之decorator理解
  3. 一个交易号的生成和还原过程
  4. ASP.NET 状态视图概览
  5. 虚拟机可以识别usb无线网卡,但一直提示设备正在运行中--解决方法
  6. java.net.SocketException: Write failed: Broken pipe异常分析
  7. YouTube推荐系统算法梳理
  8. 【报告分享】5G时代新型基础设施建设白皮书.pdf
  9. Transformers Assemble(PART IV)
  10. PHP判断pc和移动端跳转,JS判断是PC还是移动端浏览器,并根据不同的终端跳转到不同的网址...