其实很简单:
/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