Eclipse项目无法使用相对路径引用文件

use*_*719 1 java eclipse file relative-path

我的文件位于src目录下.但是,当我尝试使用"src/readme.txt"调用它时,找不到该文件.事实上,它声明java正在寻找"C:\ Documents and settings\john\My Documents\Downloads\eclipse-win32\eclipse\coolCarsProject\src\readme.txt".

我该如何解决?我不想一直放在绝对的路上.

我是否需要修复类路径,构建路径或更改项目根目录等?对于新手来说,从Eclipse的大约1000个设置中可以看出这一点并不明显.

JB *_*zet 9

首先,您必须决定是否要从文件系统加载文件,或者文件是否实际上与您的应用程序代码捆绑在一起.

如果是前者,那么您应该考虑在实际部署时如何启动应用程序,因为使用相对文件路径意味着程序应始终从相同位置启动:相对路径是相对于该位置的位置程序启动(当前目录).如果这真的是你想要的,那么在Eclipse中编辑你的启动配置,转到Arguments选项卡,然后设置你想要的工作目录.但是src目录不是放置此文件的位置,因为这会将文件复制到目标目录以及类,这些类可能会在部署应用程序后放入jar中.

如果是后者,则不应将文件视为文件,而应将其作为ClassLoader加载的资源,使用ClassLoader.getResourceAsStream()(或Class.getResourceAsStream()).阅读这些方法的javadoc以了解要传递的路径.如果将文件直接放在src下,它将被Eclipse复制到默认包中的目标目录以及类.因此你应该用SomeClass.class.getResourceAsStream("/readme.txt")它来加载它.