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

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");

这样读取出来是null。

getClass().getClassLoader().getResource()从源码运行的URL如下:

95765ef8fac7dedf181a7c05d5ec145c.png

从JAR包运行的URL如下:

8a301cf0704c6de4ea39888533510b2c.png

测试系统Win10,从源码运行的话有一个file:前缀,而从JAR包运行有一个jar:file:前缀。

前缀一般没有影响,一般都能直接通过URL获取文件,比如在Swing的JFrame中设置图标:

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301862.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云开源的Blink,计算能力很疯狂:一眨眼,全部都算好!

全世界只有3.14 % 的人关注了数据与算法之美前两天,阿里云宣布开源“计算王牌”——实时计算平台Blink,回馈给ApacheFlink社区。官方称,计算延迟已经降到毫秒级:浏览网页的时候,你只是眨了一下眼睛,但在淘宝…

NET问答: 如何用 C# 计算相对时间 ?

咨询区 Jeff Atwood:给定一个 DataTime 值,如何计算如下时间?比如说:2 小时前?3 天前?1 个月前?回答区 neuracnu:我在 DateTime 类上做了一个扩展方法,你可以给它传递未来…

有趣程序和让人捧腹大笑的注释,你的注释还不够骚

全世界只有3.14 % 的人关注了数据与算法之美一&#xff0c;这个是关于数组的操作&#xff0c;数据汪也是才知道&#xff0c;居然还有这种操作# include <stdio.h>int main(){ int num[] {1,2,3,4};printf("the 3[num] result is : %d\n", 2[num]);return 0;}结…

.NET之盛派微信SDK简单操作

开篇语在6月5号&#xff0c;我报名去参加了微软举办的一个线下分享的技术市集&#xff0c;分享人是苏老师和赵老师(非常感谢)&#xff0c;其中苏老师讲述了关于一些容器的部署等操作(也可以观看我的历史文章)&#xff0c;其中关于部署的示例代码是使用盛派微信SDK做了一个对接微…

预售┃连锁反应装置积木好玩到尖叫!

▲数据汪特别推荐点击上图进入玩酷屋之前推荐的“小小机械师”成了孩子最受欢迎的玩具&#xff0c;玩了的孩子几乎没有不喜欢的。还有家长买多套送给朋友的孩子作为生日礼物。有家长来问&#xff0c;还有没有这种类型的新产品。和厂家咨询后&#xff0c;小木找到了一款“小小机…

VMware VSphere 虚拟化云计算学习配置笔记(四)

2:接下来配置安装vcenter-db&#xff0c;安装MS SQL 2008r2 在vcenter-db服务器上安装配置MS SQL 2008r2过程截图&#xff1a; 这里可能会要耐心等一下才会出现一下提示&#xff1a; 选择左边installation 之后出现右边第一项新的安装&#xff1a; 转载于:https://blog.51cto.c…

IT人回家过年的尴尬

全世界只有3.14 % 的人关注了数据与算法之美春节将至&#xff0c;有很多人已经踏上了返乡的旅途&#xff0c;回家开开心心过春节&#xff0c;归心似箭的心表明了他们对家乡的热爱&#xff0c;归心似箭的心显示了他们想念父母的情&#xff0c;归心似箭的心代表了他们对朋友的思。…

java 判断进程状态_获取远程服务器上 Java 进程的运行状态

为了安全考虑, 有些服务器会被限制登录. 本文介绍如何获取远程服务器上 Java 进程的运行状态.启动 jstatd 服务在服务器端启动 jstatd 服务后, 远程的机器可以通过 rmi 协议获取服务器上 Java 程序的运行状态.在服务器上创建 jstatd 的授权文件, 假设文件路径为/etc/jstatd.all…

聊一聊Elasticsearch和MySQL的常用操作

前言 ElasticSearch&#xff0c;开源的搜索和数据分析引擎&#xff0c;也是名列前茅的 nosql。很多时候会想拿它和关系型数据库做对比&#xff0c;严格上它们是没有太多可比性的。不过把有的东西放在一起比较&#xff0c;会帮助我们快速去理解一些 ElasticSearch 的内容。老黄这…

入门Python,限时1元!

爆竹声中一岁除&#xff0c;春风送暖入屠苏。猪年来袭&#xff0c;小天先跟各位模粉拜年啦&#xff01;当然&#xff0c;小天还准备了限时福利送给大家~套路&#xff1f;不存在的&#xff01;限时9元1深度学习限时体验第一章 深度学习概述与计算机视觉挑战1.1深度学习概述1.2 挑…

使用 Bridge to Kubernetes 简化云端开发

当我们面对一个大型应用程序&#xff0c;它有大量的微服务&#xff0c;并希望完成一些功能开发&#xff1f;我们面临许多挑战&#xff0c;其中之一将是处理正确的环境&#xff0c;如何进行开发。我们知道&#xff0c;在团队中解决这个问题的最佳方法是将其容器化并在云上托管。…

菜鸟学习数据科学家 5 大误区

全世界只有3.14 % 的人关注了数据与算法之美你准备好要成为一名数据科学家&#xff0c;积极的参加Kaggle比赛和Coursera的讲座。虽然这一切都准备好了&#xff0c;但是一名数据科学家的实际工作与你所期望的却是大相径庭的。本文研究了作为数据科学家新手的5个常见错误。这是由…

java多线程 sycophantic_Java多线程volatile和synchronized总结

volatile是轻量级的synchronized&#xff0c;在多处理器(多线程)开发中保证了共享变量的“可见性”。可见性表示当一个线程修改了一个共享变量时&#xff0c;另外一个线程能读到这个修改的值。正确的使用volatile&#xff0c;能比synchronized的使用和执行成本更低&#xff0c;…

春节特惠活动┃不只是舒适,简直是享受,Google公司用的腰靠,到底有什么秘密?...

▲数据汪特别推荐点击上图进入玩酷屋之前小木推荐“德国MINICUTE人体工学腰垫”受到了大家一致的好评和争相购买。小木为什么推荐这一款原因是&#xff1a;据统计&#xff0c;我国腰椎病患者已经突破2亿人。30~40岁人群中&#xff0c;患有颈腰椎病的占比59.1%&#xff01;而且有…

春节特惠活动┃给孩子讲100个科学道理,不如带他做这些趣味实验!

▲数据汪特别推荐点击上图进入玩酷屋玩具和学习看似是两个对立的东西&#xff0c;孩子天性爱玩&#xff0c;家长却希望孩子能多学习。不一定非要啃课本才能汲取知识&#xff0c;有时候&#xff0c;在轻松有趣的游戏中也能学到课堂上学不到的知识。让学习变得有趣、高效——给孩…

linux java 进程监控工具_推荐4个好用的Linux监控工具

本文介绍了作者常用的 4 个 Linux 监控工具&#xff0c;希望可以帮助读者提高生产力。身为一个运维开发人员&#xff0c;如果你不知道眼下当前服务器底层操作系统中正在发生什么&#xff0c;那就有点合眼摸象了。其实&#xff0c;你可以根据相应数据做出一定的推测&#xff0c;…

看TensorFlow如何玩转深度学习

自 2015 年 11 月 9 号发布之后&#xff0c;TensorFlow 逐渐成为人工智能领域最广泛运用的深度学习框架。TensorFlow 是一个大规模机器学习的开源框架&#xff0c;提供了多种深度神经网络的支持。不仅 Google 在自己的产品线使用 TensorFlow&#xff0c;包括联想、小米、新浪网…

春节特惠活动┃数学无用论??我们欠孩子真正的数学阅读

▲数据汪特别推荐点击上图进入玩酷屋说到数学&#xff0c;我想起了13年一场轰动行业各界的“数学无用论”&#xff01;那时微博上有个话题叫做#让数学滚出高考#&#xff0c;超过7成网友都表示支持&#xff0c;这可怕的比例就能说明在中国由于数学差导致命运被洗牌的真不在少数……

python pytest allure_python测试框架pytest和测试报告allure的联合使用-----测试套件

最近采用jenkinspythonpytestallure写了一些自动化测试用例。碰到这样一种场景&#xff1a;如果我创建了2个测试任务&#xff0c;测试任务1包含2个测试用例test_a.py和test_b.py&#xff0c;测试任务2包含一个测试用例test_c.py。一. 常规操作假设我的代码目录结构有如下3个测试…

那天,我无意间瞟了眼程序员的桌面……

全世界只有3.14 % 的人关注了数据与算法之美爱因斯坦曾说过“要是乱糟糟的桌面意味着杂乱无章的脑袋&#xff0c;那空白桌面意味着什么呢&#xff1f;似乎很多在某些领域拥有天赋的人都不喜欢干净整洁的桌面&#xff0c;包括乔布斯和扎克伯格也是&#xff0c;甚至有的人一看到整…