top-topsoft 2015-05-09 13:17 采纳率: 25%
浏览 12075
已采纳

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目录才对啊,理论上。
请赐教

我查看了打包编译后的目录,确实是打进去了的,为什么通过只写文件名这种方式就访问不到呢?

图片说明
图片说明

图片说明
图片说明
图片说明

  • 写回答

1条回答 默认 最新

  • foreach_break 2015-05-09 13:28
    关注

    建个目录,把你要访问的文件放进去,把这个目录标记为Recources,然后用下面的方式访问:

    yourClassName.class.getClassLoader().getResource("xxxxxxxx.txt").getFile()

    红色地方替换为你自己的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 请教一下c语言的代码里有一个地方不懂
  • ¥15 opencv 无法读取视频
  • ¥15 用matlab 实现通信仿真
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了