在Eclipse中将Java项目的资源(图像,数据文件等)存储在哪里?
不确定是否已经在SO上回答了这个基本问题。
从参考资料以及在SO上找到的答案,我了解到在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
。为了测试,它将是target/test-
classes。
此外,如果要访问资源,则在类所在的Jar中访问该资源,则不应使用new
File("..."),Paths.get(...)
而应该使用getResourcesAsStream或其对应的getResource:
try (Scanner scanner = new Scanner(MyClass.class.getResourceAsStream("/myfile.txt"))) { while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
}
如果/myfile.txt
找不到,这可能会引发NPE 。
以上是 在Eclipse中将Java项目的资源(图像,数据文件等)存储在哪里? 的全部内容, 来源链接: utcz.com/qa/430432.html