Java - 存储额外资源文件的位置

thi*_*one 2 java

我的代码需要一个PNG文件.我应该把它放在哪里?我看到有些人把它们放在.java中,然后使用getClassLoader().getResourceAsStream.

就个人而言,我认为将资源文件与源代码混合起来并不干净.这是一个好的方法吗?

Thi*_*ilo 6

这是一种非常普遍和公认的做法.它的优点是PNG文件将与代码一起捆绑在JAR文件中.因此,您不必担心文件系统问题和安装过程.如果您的代码在那里,资源也是如此.

您可以为同一个项目提供多个源文件夹,一个用于Java,一个用于资源.如果您使用的是Maven,建议使用这种结构.但是,将PNG(以及属性和XML)文件混合到源树中也不是问题(特别是因为如果不使用Maven,分离会使构建过程复杂化).

您应该与源(以及编译结果)分开的唯一事项是用户可编辑的数据,例如配置文件.如果您希望用户能够替换图像,这可能适用于此处.如果它是固定的(或提供默认值),请将其与程序捆绑在一起以减少可移动(=易碎)部件的数量.