问题描述
- IntelliJ IDEA中 子项目文件路径问题,求解决
-
先看图,然后我仔细解释
最近发现找不到文件,同样的代码在eclipse中可以正常找到,对于idea不熟悉,所以来此请教,我是把一些文件拷resources目录下,发现找不到了,使用相对路径,我看到target/classes中是编译过去了的啊,这个路径该怎么写?
在eclipse中
(1) 主项目包含的两个模块 topsoft-test(web项目) topsoft-utils(java maven项目)
(2)(3)(4) 根据new File("log4j.xml);以及创建文件可以发现路径是相对于子项目topsoft-utils的跟路径,(4)标注了这个测试类是在topsoft-utils中运行的
(5) 假如说我想访问(5)标注处的这个文件,相对路径该怎么写?
转到IntelliJ IDEA中,目录结构一样,运行的测试也是一样,打印出来的目录不同,我想这是IDE的区别,或者说是在IDEA的配置当中哪里出了问题,导入maven项目我就默认的 Project Structure 我看到里面有三个模块。
路径中只写文件名不是相对于classpath路径么,为什么相对于项目的跟路径了,eclipse中这样可以接受,至少还能加上src/main/....访问到,而在IntelliJ中就完全不对了,主项目打包会产生子项目的jar包,而我访问的文件应该是相对于子项目的classpath路径,在IntelliJ中,resources是在classpath中的,如果只写名字应该是相对于子项目的resources目录才对啊,理论上。
请赐教我查看了打包编译后的目录,确实是打进去了的,为什么通过只写文件名这种方式就访问不到呢?
解决方案
建个目录,把你要访问的文件放进去,把这个目录标记为Recources,然后用下面的方式访问:
yourClassName
.class.getClassLoader().getResource("xxxxxxxx.txt"
).getFile()
红色地方替换为你自己的。
时间: 2024-10-31 03:19:31