假设我开发了一个游戏,并将其放在包结构中:
com.dxmio.games.breakout
那么,放置游戏使用的音频和图像等资源的“最佳实践”位置在哪里?
您始终可以对您的项目采用标准的 Maven 方法,并将所有应用程序源文件放入:
{home}/src/main/java/com/dmxio/games/breakout
然后您的资源位于:
{home}/src/main/resources/com/dmxio/games/breakout
然后您的测试将存在于:
{home}/src/test/java/com/dmxio/games/breakout
这种结构是在 Maven 世界中构建项目的标准约定。它带来了很多优点,您可能想看看。您可以在此处查看资源部分:Apache Maven Guides - How do I add resources to my JAR
或者:)这里的另一个答案的方法很好......
我已经看到以多种不同的方式处理此问题:
将您的资源直接放在com/dmxio/games/breakout
(例如/com/dmxio/games/breakout/images/foo.gif
和/com/dmxio/games/breakout/images/bar.gif
)下的子目录中
将您的资源与您的类文件一起放入一个 jar 中(例如foo.gif
并bar.gif
捆绑在 中breakout.jar
)
将您的资源放在子目录下的单独“资源 jar”中com/dmxio/games/breakout
(例如foo.gif
并bar.gif
捆绑在 中/com/dmxio/games/breakout/images/images.jar
)
我倾向于支持最后一个选项。
然后,您可以使用该java.lang.Class.getResource()
方法检索您的资源。