this.getClass().getResource(String) 路径问题

其实很简单:

/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  单向同步
				
时间: 2025-01-03 18:36:18

this.getClass().getResource(String) 路径问题的相关文章

zbb20170604 java file 路径 this.getClass().getResource(String) 路径问题

this.getClass().getResource(String) 路径问题    这里的默认当前路径是该类所在目录: this.getClass() 说明了一切!! this.getClass().getClassLoader().getResource(String)  这里的路径就是项目的根目录 src/main下的 或者编译好的classes 下的:getClassLoader()说明了一切 ! ! File f=new File(String);//路径问题和上述有点区别   这里

[Java开发之路](18)关于Class.getResource和ClassLoader.getResource的路径问题

Java中取资源时,经常用到Class.getResource和ClassLoader.getResource.昨天老师讲解题目时候,问我们为什么你们都是在文件前家上"/": String path = Resources.class.getResource("/a.txt").getPath(); 注:在Resources文件下创建了a.txt文件 我想我反正是试出来的,不使用"/"不行.为了正式解答心中的疑惑,我们正式来看看Resources

关于Class.getResource和ClassLoader.getResource的路径问题(转)

参考博客:http://www.cnblogs.com/yejg1212/p/3270152.html Class.getResource(String path) 当path以/开头,如/a/b/c.properties时,查找的路径为: classpath路径:path. 当path不以/开头时,如c.properties,查找的路径为:当前调用类的路径:path. 什么意思呢?看下面这段代码的输出结果就明白了: package testpackage; public class TestM

关于Class.getResource和ClassLoader.getResource的路径问题

Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题. 转自:http://www.cnblogs.com/yejg1212/p/3270152.html Class.getResource(String path) path不以’/'开头时,默认是从此类所在的包下取资源: path 以’/'开头时,则是从ClassPath根下获取: 什么意思呢?看下面这段代码的输出结果就明白了: package

java: 关于从jar中读取资源遇到的问题getClass().getResource(...)

在Java的程序发布中,很多人会选择采用二进制的jar的格式进行发布,怎么样读取Jar里面的资源呢?主要是采用ClassLoader的下面几个方法来实现:public URL getResource(String name):public InputStream getResourceAsStream(String name) public static InputStream getSystemResourceAsStream(String name)public static URL get

Class.getResource和ClassLoader.getResource的路径写法

Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题. Class.getResource(String path) path 不以’/'开头时,默认是从此类所在的包下取资源:以’/'开头时,则是从ClassPath根下获取: 同样用法的还有Class.getResource和Class.getResourceAsStream. Class.getClassLoader().getResource

Class类的getResource(String name)方法和ClassLoader的getResource(String name)方法

1.Class.getResource(String name) package path; import org.junit.Test; import jodd.emial.JoddDemo; public class PathTest { @Test public void pathTest() { System.out.println(JoddDemo.class.getResource(""));//输出file:/E:/workspace/MyDemo/target/clas

一个java工程师的前6年工作部分技术积累(一)

一.  JavaScript 1.判断输入0-1之间的小数 function checkPower(power) { var str = power.value; var reg = /(^[1]$)|(^[1]\.[0]{1,2}$)|(^[0]\.[1-9][0-9]{0,1}$)|(^[0]\.[0-9][1-9]$)/; if(!reg.test(str)) { alert('权重必须为大于0小于或等于1的小数!'); power.focus(); return false; } ret

各类地址及资源获取的方式

搭建虚拟主机后,而不是利用eclipse把工程发布到tomcat中的一些错误 1.首先jstl,standard.jar包得导入,否则运行会出现异常 org.apache.jasper.JasperException: This absolute uri http://java.sun.com/jsp/jstl/core) cannot be resolved in either web.xml or the jar files deployed with this application,而不