Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse中java项目的资源(图像、数据文件等)存储在何处?_Java_Eclipse_Resources_Directory - Fatal编程技术网

Eclipse中java项目的资源(图像、数据文件等)存储在何处?

Eclipse中java项目的资源(图像、数据文件等)存储在何处?,java,eclipse,resources,directory,Java,Eclipse,Resources,Directory,我不确定这个基本问题是否已经得到了回答 从上面的参考和答案中,我了解到在Eclipse中,“源文件夹”是JDT将搜索并编译源文件的文件夹 还提到,每个源文件夹可能有一个对应的文件夹来存储编译的类。也许这就是为什么项目中通常的“src”文件夹的内容被编译成“bin”文件夹的原因(在Eclipse中使用此类src/bin项目选项时) 问题:在何处存储其他非源文件,例如图标、安全策略或数据文件?我猜这是在一个“常规”文件夹中,但是在项目层次结构中的哪个级别(通常)?是否可以将其放在源文件夹中(为什么要

我不确定这个基本问题是否已经得到了回答

从上面的参考和答案中,我了解到在Eclipse中,“源文件夹”是JDT将搜索并编译源文件的文件夹

还提到,每个源文件夹可能有一个对应的文件夹来存储编译的类。也许这就是为什么项目中通常的“src”文件夹的内容被编译成“bin”文件夹的原因(在Eclipse中使用此类src/bin项目选项时)


问题:在何处存储其他非源文件,例如图标、安全策略或数据文件?我猜这是在一个“常规”文件夹中,但是在项目层次结构中的哪个级别(通常)?是否可以将其放在源文件夹中(为什么要这样做)?编译或导出到.jar文件后会发生什么情况?在哪些条件下文件会复制到.jar中?相对路径被保留了吗?

这完全是常规的。如果需要,可以将它们全部存储在
src

但是,如果您想坚持Maven或Gradle约定,那么您应该有这样的约定:

  • src/main/java
    :主要源文件,将被编译然后分发(jar等)
  • src/main/resources
    :主要资源,分布式
  • src/test/java
    :测试源文件,也称Junit测试
  • src/test/resources
    :测试资源
Maven将所有Java编译成
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());
  }
}