Java FileNotFoundException:从Eclipse重构到IntelliJ?
我有一个Java应用程序,它依赖于本地源二进制文件,例如字体和图像。在Eclispe中开发时,我在Java FileNotFoundException:从Eclipse重构到IntelliJ?,java,eclipse,file,intellij-idea,Java,Eclipse,File,Intellij Idea,我有一个Java应用程序,它依赖于本地源二进制文件,例如字体和图像。在Eclispe中开发时,我在/src中使用了一个/res目录来存放这些依赖项,从而生成了如下示例项目结构: - src - res lena.png - com.foo Main.java 在Main.java中,可以使用以下调用获取资源引用 final File lFile=新文件(Main.class.getClassLoader().getResource(“res/le
/src
中使用了一个/res
目录来存放这些依赖项,从而生成了如下示例项目结构:
- src
- res
lena.png
- com.foo
Main.java
在Main.java中,可以使用以下调用获取资源引用
final File lFile=新文件(Main.class.getClassLoader().getResource(“res/lena.png”).getPath())代码>
这种方法在我的整个开发过程中都很好地为我服务,但由于迁移到IntelliJ,它导致了FileNotFoundException
。这是应用程序自转换后停止运行的唯一方面
使用IntelliJ时,依赖项是否需要以不同的方式注册,而不是简单地将它们插入到项目结构中?是否有一种独立于IDE的方法可以替代
这是例外情况
;它看起来像是指向编译目录(/bin
),但我可能弄错了:
java.io.FileNotFoundException:/home/alexander/Development/application-1/application/bin/res/font/lena.png(没有这样的文件或目录)
我将项目从使用继承项目编译输出路径修改为使用编译到模块输出路径,这将输出目录从Eclipse的/bin
更改为IntelliJ的/out
。运行时路径将相应更新。我仍然无法访问这些文件,尽管我可以确认它们存在于/out
层次结构中,并且它们指向正确的位置 你把bin
文件夹添加到类路径了吗?我猜你想查看资源包之类的东西。通常,任何类型的资源都应该是某个包的一部分;然后IDE会将其复制到您的“总体”root/bin或root/output目录。换句话说:在src下有一个专用的bin文件夹完全不是您应该做的事情。Eclipse和IntelliJ(默认情况下)使用不同的文件夹进行输出。因此,您可能希望确保没有引用输出文件夹中的资源。路径的根目录应该在输出文件夹本身内,以确保IDE不可知。@Keerthivasan:我刚刚尝试使用项目设置添加文件夹,但这似乎只适用于源文件。我做错了吗?@Jägermeister:我有点误解;您是否建议我将bin
文件夹放在com.foo
中?或者我应该创建一个单独的模块吗?