this.getClass().getResource(String) 路径问题
this.getClass().getResource(String) 路径问题 这里的默认当前路径是该类所在目录; this.getClass() 说明了一切!!
找到类,就找文件;很显然和类同一目录下
如果是在静态方法里,可以使用 类名.Class.getResource()
this.getClass().getClassLoader().getResource(String) 这里的路径就是项目的根目录 src/main下的 或者编译好的classes 下的;getClassLoader()说明了一切 ! !
找到类,还得找到类的加载器,再找文件;很显然再根目录下
File f=new File(String);//路径问题和上述有点区别 这里默认当前路径是该工程下的第一层 与平时所说的src 在同一层
其实具体所指示的路径可能由于开发工具的相关配置而引起不同,此时可以打印一下f的路径看看
其实很简单:
/images/j.jpg
/a.txt 有斜杠 表示从 项目 根目录下找
images/j.jpg
a.txt 无斜杠表示从当前 执行 文件夹下寻找 难点在于哪里是根目录,哪里是当前文件夹下。。。。。。是编译好的文件噢!!!!! 不一定 是当前编写的代码所在的文件。为什么说不一定呢? 对于maven项目,根目录其实是在target 文件夹下的classes 或 test-classes 对于maven的web项目其目录结构应如下
maven
--src
--main
--java (在运行时,其内容会被编译到target的classes下,紧适合放java代码)
--包A
--包B
--resources (在运行时,下面内容会被拷贝的target下,因此放一些资源文件)
--文件夹C
--图片X
--图片J
--webapp
--test --target (运行或编译时候自动生成)
--classes
--包A
--包B
--问价夹C
--图片X
--图片J
           --test-classes
  如上图:根目录就是指classes/  或test-classes/
  test与main下面的文件夹结构类似,都一般包含java、resource等
  假如我在main/resources 下面的文件价夹下放置   图片.jpg;通过test/java/中的类能否使用呢?
  答案是可以的:   
  本人测试结果如下:
           首次编译执行test: 
                     main/resources与 test/resources 内都有要使用的文件,则使用拷贝到test-classes/下的文件
                     main/resources有 test/resources 内没有,则使用拷贝到classes/下的文件
           非初次编译运行时:
                     假如我在第二次运行前删除了test-classes/下的文件 则他会去寻找classes/下的文件
                     若都删除则会报错,找不到
          文件同步机制:src ----> target  单向同步
    												
											this.getClass().getResource(String) 路径问题的更多相关文章
- 关于obj.class.getResource()和obj.getClass().getClassLoader().getResource()的路径问题
		感谢原文作者:yejg1212 原文链接:https://www.cnblogs.com/yejg1212/p/3270152.html 注:格式内容与原文有轻微不同. Java中取资源时,经常用到C ... 
- JAVA获取当前文件路径this.getClass().getResource方法详细讲解
		public class Test { public void run() { // TODO Auto-generated method stub System.out.println(" ... 
- 关于Class.getResource和ClassLoader.getResource的路径问题
		Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题. Class.getResource(Stri ... 
- 【转】关于Class.getResource和ClassLoader.getResource的路径问题
		Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题. Class.getResource(Stri ... 
- getResource(String name)用法及源码分析
		Project获取资源需要一个启点,加载资源的动作是由ClassLoader来完成的.Class对象和当前线程对象可以找到当前加载资源的ClassLoader,通过ClassLoader的getRes ... 
- java: 关于从jar中读取资源遇到的问题getClass().getResource(...)
		在Java的程序发布中,很多人会选择采用二进制的jar的格式进行发布,怎么样读取Jar里面的资源呢?主要是采用ClassLoader的下面几个方法来实现:public URL getResource( ... 
- (转)关于Class.getResource和ClassLoader.getResource的路径问题
		Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题. 1 Class.getResource(St ... 
- 关于Class.getResource和ClassLoader.getResource的路径问题(转)
		参考博客:http://www.cnblogs.com/yejg1212/p/3270152.html Class.getResource(String path) 当path以/开头,如/a/b/c ... 
- this.getClass().getResource()示例详解
		public class ResourceTest extends TimerTask{ @Override public void run() { System.out.prin ... 
随机推荐
- PE文件格式详解(四)
			0x00 前言 上一篇介绍了区块表的信息,以及如何在hexwrokshop找到区块表.接下来,我们继续深入了解区块,并且学会文件偏移和虚拟地址转换的知识. 0x01 区块对齐值 首先我们要知道啥事区块 ... 
- 常用js代码片段(一)
			1.如果数组所有元素都满足函数条件,则返回true.调用时,如果省略第二个参数,则默认传递布尔值. const all= (arr, fn=Boolean) => arr.every(fn); ... 
- 一篇文章掌握 Python 内置 zip() 的全部内容
			一篇文章掌握 Python 内置 zip() 的全部内容 zip() 是 Python 中最好用的内置类型之一,它可以接收多个可迭代对象参数,再返回一个迭代器,可以把不同可迭代对象的元素组合起来. 我 ... 
- java 基本语法(十一) 数组(四)数组的常见算法
			1.数组的创建与元素赋值: 杨辉三角(二维数组).回形数(二维数组).6个数,1-30之间随机生成且不重复. 杨辉三角 public class YHSJ { public static void m ... 
- 隐藏Layer中的Iframe内部元素
			隐藏Layer中的Iframe内部元素 1.Layer:一个web弹出层/窗解决方案 2.隐藏Layer弹出层中Iframe内部的元素,例子如下: 这个就是在Layer弹出层内的内容,加载完毕之后,获 ... 
- CSS-好玩的样式(用高斯模糊制作平缓突起)
			一.效果图: 应用: 二.上代码 <!DOCTYPE html> <html lang="en"> <head> <meta charse ... 
- servlet的HttpSession与HibernateSession的区别
			一.javax.servlet.http.HttpSession是一个抽象接口 它的产生:J2EE的Web程序在运行的时候,会给每一个新的访问者建立一个HttpSession,这个Session是用户 ... 
- Windows 磁盘分区后如何再合并&如何用Windows自带工具扩大某个分区
			Windows 磁盘分区后如何再合并&用Windows自带工具扩大某个分区 注:此方法有一定的成功率,更加完善可行的方法请看http://www.diskgenius.cn/help/part ... 
- P5836 [USACO19DEC]Milk Visits S  从并查集到LCA(最近公共祖先) Tarjan算法 (初级)
			为什么以它为例,因为这个最水,LCA唯一黄题. 首先做两道并查集的练习(估计已经忘光了).简单来说并查集就是认爸爸找爸爸的算法.先根据线索理认爸爸,然后查询阶段如果发现他们的爸爸相同,那就是联通一家的 ... 
- P2070 刷墙 (洛谷)
			题目描述 Farmer John已经设计了一种方法来装饰谷仓旁边的长栅栏(把栅栏认为是一根一维的线).他把一只画刷绑在他最喜爱的奶牛Bessie身上,之后就去喝一杯冰水,而Bessie隔着栅栏来回走, ... 
