Eclipse中java项目的资源(图像、数据文件等)存储在何处?
我不确定这个基本问题是否已经得到了回答 从上面的参考和答案中,我了解到在Eclipse中,“源文件夹”是JDT将搜索并编译源文件的文件夹 还提到,每个源文件夹可能有一个对应的文件夹来存储编译的类。也许这就是为什么项目中通常的“src”文件夹的内容被编译成“bin”文件夹的原因(在Eclipse中使用此类src/bin项目选项时)Eclipse中java项目的资源(图像、数据文件等)存储在何处?,java,eclipse,resources,directory,Java,Eclipse,Resources,Directory,我不确定这个基本问题是否已经得到了回答 从上面的参考和答案中,我了解到在Eclipse中,“源文件夹”是JDT将搜索并编译源文件的文件夹 还提到,每个源文件夹可能有一个对应的文件夹来存储编译的类。也许这就是为什么项目中通常的“src”文件夹的内容被编译成“bin”文件夹的原因(在Eclipse中使用此类src/bin项目选项时) 问题:在何处存储其他非源文件,例如图标、安全策略或数据文件?我猜这是在一个“常规”文件夹中,但是在项目层次结构中的哪个级别(通常)?是否可以将其放在源文件夹中(为什么要
问题:在何处存储其他非源文件,例如图标、安全策略或数据文件?我猜这是在一个“常规”文件夹中,但是在项目层次结构中的哪个级别(通常)?是否可以将其放在源文件夹中(为什么要这样做)?编译或导出到.jar文件后会发生什么情况?在哪些条件下文件会复制到.jar中?相对路径被保留了吗?这完全是常规的。如果需要,可以将它们全部存储在
src
中
但是,如果您想坚持Maven或Gradle约定,那么您应该有这样的约定:
:主要源文件,将被编译然后分发(jar等)src/main/java
:主要资源,分布式src/main/resources
:测试源文件,也称Junit测试src/test/java
:测试资源src/test/resources
target/classes
,并将所有资源复制到target/classes
。对于测试,它将是目标/测试类
此外,如果要访问资源,即类所在的Jar中的资源,则不应使用新文件(“…”
或路径。获取(…)
,而是使用其对应项:
如果未找到
/myfile.txt
,这可能会引发NPE。您可以将它们放在src文件夹中。通常将这些内容放在\assets文件夹中,与\src文件夹并行。。。取决于您将如何部署生成的程序。@erstwhileii:谢谢。你能说更多关于“取决于如何……”的话吗?您考虑的标准是什么?Java程序是否会作为Android应用程序在您自己的计算机、Web服务器上运行。。所有最终部署可能都有自己的要求,即它们访问的程序和文件需要驻留在何处。您可以。
try (Scanner scanner = new Scanner(MyClass.class.getResourceAsStream("/myfile.txt"))) {
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
}